CraftEngine v4.3.0
El framework Python para aplicaciones web expresivas
Construye aplicaciones elegantes y listas para producción en Python, con convenciones MVC familiares. Craft ORM con UUID de doble clave, plantillas Forge, WAF Active Defense y CRUD builder visual — todo incluido.
from craft.facades import Route, Auth, DB
from craft.orm.model import Model
class Post(Model):
__table__ = "posts"
fillable = ["title", "body", "user_id"]
def author(self):
return self.belongs_to(User)
# Expressive REST & Admin Routing
Route.resource("posts", PostController, write_middleware="auth")
Route.get("/admin", [AdminController, "index"])
.middleware("auth", "role:admin", "firewall")
Funcionando en segundos
De cero a una aplicación en marcha, con migraciones, datos de ejemplo e interfaz de administración — en cuatro pasos simples.
Clonar y configurar
git clone https://github.com/msrjson/craftengine.gitcd craftengine/data && cp .env.example .envpython dev.py key:generateMigrar y poblar
python dev.py migrate --seedServir en local
python dev.py serveEjecutar con Docker
docker compose up -d --buildAplicación lista en localhost:9000
Todo lo que necesitas, nada de lo que no
Un framework completo que respeta tu tiempo. Convenciones MVC familiares, pensadas para desarrolladores Python que exigen velocidad, claridad y seguridad.
Active Record y UUID de doble clave
ORM de alto rendimiento con eager loading, relaciones, soft deletes, query builder y resolución automática de UUID público — en SQLite, PostgreSQL y MySQL.
Rendimiento ASGI asíncrono
Un núcleo ASGI de alto rendimiento: los controllers síncronos se ejecutan en paralelo en un pool de hilos, cada uno con una conexión del pool, con soporte para controllers asíncronos.
Active Defense y firewall WAF
Web Application Firewall integrado (protección contra SQLi, XSS y SSRF), honeypot para atrapar atacantes, bloqueo contra fuerza bruta y registro de auditoría.
CRUD builder visual y de terminal
Genera cortes verticales completos con un comando o con el builder visual: migraciones DDL, Models, FormRequests, Resources e interfaz de administración.
Motor de plantillas Forge
Plantillas expresivas con escape automático y directivas como @csrf, @auth, @guest, @can, @honeypot y layouts de componentes.
Consola y CLI para desarrolladores
Herramientas de línea de comandos completas: generadores, consola interactiva tinker, migrador de base de datos, workers de cola, planificador de tareas y gestión del firewall.
Probado como si producción dependiera de ello
Toda la suite se ejecuta contra PostgreSQL y SQLite. Estas cifras se copian del informe de una ejecución real, no se escriben a mano, y la insignia de abajo muestra el estado en vivo de cada push.
Nunca se borra nada
Ninguna prueba borra, trunca ni elimina un registro. Una comprobación hace fallar el build ante cualquier sentencia así, y cada ejecución en PostgreSQL recibe una base de datos nueva propia.
Recorridos de extremo a extremo
Se genera un proyecto desde cero y luego el inicio de sesión, el registro, el panel de administración y las pantallas CRUD generadas se usan como lo haría una persona - en todos los idiomas, incluidos los rechazos.
Comandos documentados, ejecutados
Cada comando que la documentación y la CLI indican ejecutar lo ejecuta la suite, así que una guía no puede enseñar uno que no existe.
Los errores fallan en voz alta
Directivas de plantilla desconocidas, métodos de controlador inexistentes, roles mal configurados y claves sin traducir son errores que indican la solución, no páginas vacías en silencio. craft doctor revisa un proyecto antes de su primera petición.
Última ejecución verificada:
·
commit 4b9d3a6 ·
La seguridad es parte del motor
Los valores peligrosos por defecto ya están cerrados antes de tu primera ruta — no quedan como una lista de tareas para después.
Hash de contraseñas Argon2id
Hash de uso intensivo de memoria para contraseñas nuevas; los hashes antiguos bcrypt y PBKDF2 siguen siendo verificables y se actualizan en el siguiente inicio de sesión.
Bóveda de credenciales AES-256-GCM
Las claves de API de terceros y los secretos OAuth se cifran en reposo con una clave derivada de la clave de la aplicación — nunca en texto plano.
Tokens firmados con contexto
Los tokens de restablecimiento de contraseña y de verificación quedan ligados a su propósito y contexto, con caducidad opcional, para que un token filtrado no se reutilice en otro lugar.
CSRF, honeypot y anti-spam
Todo formulario que cambia estado lleva @csrf; los formularios públicos suman honeypot y anti-spam con comparación en tiempo constante, y cada activación se registra como evento de seguridad.
Autorización, no solo autenticación
Gates, policies y middleware role:; el build falla si alguna ruta de administración se declara sin una protección de autorización.
Persistencia absoluta de datos
Migraciones solo hacia adelante y soft deletes. Los comandos destructivos como migrate:fresh y db:wipe están prohibidos en todos los entornos.
Un esqueleto que copias, no una librería contra la que luchas
El repositorio es el esqueleto base de una aplicación nueva. Clónalo, renómbralo, y la misma base de código te lleva de un blog a la escala multi-tenant.
- data/la aplicación, montada como /app
- data/engine/el núcleo, importado como craft.*
- data/app/controllers, models, policies, plugins
- data/routes/rutas web y de API
- data/resources/views/plantillas Forge
- data/database/migraciones solo hacia adelante y seeders
- data/documentation/más de 35 guías y llms.txt
- data/tests/más de 1.500 casos pytest
- data/dev.pyla CLI de desarrollo
- .claude/rules/gobernanza y gates de calidad
- .agents/skills para agentes de IA
Módulos, plugins y contenedor
Núcleo, módulos de negocio y plugins de capacidad removibles, conectados por un contenedor de inyección de dependencias y facades estáticas — todo servicio se puede simular en pytest.
i18n en base de datos
Las traducciones viven en la base de datos, no en archivos sueltos. Todo proyecto nace trilingüe — inglés como fuente, portugués de Brasil por defecto, español como alternativa — con plurales ICU.
Releases gobernadas
Versión, contador de release y changelog avanzan juntos; pruebas, lint y el gate de idioma deben pasar antes de publicar una release. Código en inglés, cero textos de usuario fijos en el código.
Hecho para personas y para agentes de código
Convenciones que un modelo ya entiende, documentación escrita para máquinas y para personas, y herramientas de agente de primera clase dentro del framework.
Model Context Protocol
Declara clases AgentTool protegidas por RBAC y exponlas por MCP, para que asistentes e IDEs descubran e invoquen las herramientas de tu aplicación de forma segura.
SDK de IA independiente del proveedor
Una facade AI para generación de texto y un orquestador de agentes, con drivers intercambiables en lugar de depender de un proveedor.
Documentación legible por máquinas
llms.txt, llms-full.txt, CRAFT_ENGINE.md y las skills de agente le dan a un agente de código el ciclo de construcción, los límites y lo que aún no existe.
Peticiones en paralelo en un solo worker
Medido en la aplicación de ejemplo con el load tester incluido, tras mover la cadena de controllers a un pool de hilos con conexiones en pool.
Los módulos se hablan en memoria, no por HTTP
Las solicitudes externas pasan por el kernel HTTP. La llamada de un módulo a otro pasa por el proxy interno: el servicio se resuelve en el contenedor y se llama en el mismo hilo, dentro de la misma conexión y transacción. Antes, la misma llamada era una solicitud HTTP de loopback a través del kernel.
Una llamada entre módulos
51× más barata por llamada, con lectura de base de datos incluida.
Solicitudes por segundo con 32 clientes
Una solicitud externa que necesita otro módulo, de extremo a extremo. Más es mejor.
Latencia p95 con 32 clientes
El 5% de solicitudes más lentas. Menos es mejor.
Solicitudes por segundo con 64 clientes
Una solicitud de loopback ocupa dos de los 40 hilos de trabajo y el pool se bloquea: fallaron 89 solicitudes. El proxy ocupa uno y no falló ninguna.
Medido con el kernel real bajo uvicorn, un proceso, el · benchmark en el commit 480dd2b · Guía del proxy interno
Empieza ahora
Instala el framework y empieza a construir aplicaciones expresivas.
Documentación
Guías completas de arquitectura y de API para cada componente.
Código en GitHub
Lee el código, abre un issue o envía un pull request. Licencia MIT.
Base de código probada
Más de 1.500 pruebas automatizadas en SQLite, PostgreSQL y runtimes Python modernos.