A modern, async-first, type-safe Python web framework with SDD support
Project description
🌌 Aura Framework
O framework Python moderno que você sempre quis.
Async nativo · Type-safe · Schema-Driven · Módulos · Jobs integrados
Aura nasceu da frustração real com o Django, FastAPI e Flask.
Frameworks que ou te dão baterias antigas, ou te deixam comprar tudo separado.
Aura entrega o melhor dos dois mundos: opiniões certas nos lugares certos, liberdade onde importa.
✨ Por que Aura?
| Problema real | Como outros resolvem | Como Aura resolve |
|---|---|---|
settings.py com 500 linhas |
Django: um arquivo global | aura.toml modular + config type-safe por seção |
| ORM síncrono em stack async | Django: sync_to_async() em todo lugar |
SQLAlchemy 2.x async genuíno desde o core |
| Serializers fazem tudo (DRF) | ViewSet + Serializer + Permissions misturados | Schemas (DTOs) separados de Services e Routers |
| Celery complexo, sem async | Celery 5: ainda sem async def nativo |
@task(queue="emails") — async de verdade |
| DI só funciona no HTTP | FastAPI: Depends() não roda em jobs/CLI |
DIContainer funciona em qualquer contexto |
| Typing quebra com mypy | Django: metaclass magic quebra o type checker | Pydantic v2 em todo o framework, mypy strict |
| Sem estrutura de projeto | FastAPI: 82+ boilerplates diferentes | @Module NestJS-inspired com DI encapsulado |
| N+1 queries em produção | DRF: serializers aninhados sem select_related | Repository[T] com métodos otimizados |
🚀 Início rápido
pip install aura-framework[uvicorn]
# main.py
from aura import Aura, Module, Schema, injectable
from aura.routing.decorators import get, post
from aura.routing.params import Body, Param
class CreateUserSchema(Schema):
name: str
email: str
@injectable
class UserService:
async def create(self, data: CreateUserSchema) -> dict:
return {"id": 1, **data.model_dump()}
class UserController:
def __init__(self, service: UserService):
self.service = service
@get("/users")
async def list_users(self) -> list:
return await self.service.list_all()
@post("/users")
async def create_user(self, body: Body[CreateUserSchema]) -> dict:
return await self.service.create(body)
@Module(controllers=[UserController], providers=[UserService], prefix="/api")
class UserModule:
pass
app = Aura(modules=[UserModule], title="Minha API")
uvicorn main:app --reload
# → /docs (Swagger UI auto-gerado)
# → /redoc (ReDoc auto-gerado)
📚 Documentação
| Documento | Descrição |
|---|---|
| Motivação e Comparativo | Por que Aura existe, dores que resolve |
| Schemas e Validação | DTOs, Pydantic v2, validação de dados |
| ORM e Queries | Repository pattern, CRUD, busca, filtros |
| Jobs e Workers | Tasks assíncronas, queues, periodic jobs |
| Módulos e DI | Sistema de módulos, injeção de dependência |
| Roadmap | O que está sendo construído |
⚡ CLI
aura new project meu-projeto
aura generate module users
aura run
aura worker
aura migrate make "add users"
📄 Licença
MIT © Aura Contributors
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aura_web-0.1.0.tar.gz.
File metadata
- Download URL: aura_web-0.1.0.tar.gz
- Upload date:
- Size: 88.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e6f30a1f2fa3ab4a9fc5cf8bb2ba2951259e9449c149932b4c0373e68dc52bc
|
|
| MD5 |
813d35ee330f136d44064d38c3e09b38
|
|
| BLAKE2b-256 |
dc4682e1a0494f6f4ceae2061439b74388d2917efda74cd5272da19390a0f779
|
File details
Details for the file aura_web-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aura_web-0.1.0-py3-none-any.whl
- Upload date:
- Size: 78.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cd4bbcf1763e59a72ec49e6f3ef4e80b25a548fea73eab67e940dd42930bf7c
|
|
| MD5 |
86786634982de7265f0d12dae6f68e02
|
|
| BLAKE2b-256 |
76b22ec8fdfa2ee713ddc4bf0b1161a466ef61d00cd4913e8b45c730abfece11
|