The core
- Modules, controllers and providers with constructor-based dependency injection.
- The request lifecycle: middleware, guards, pipes, interceptors and exception filters.
- Configuration with ConfigModule and an injectable ConfigService that reads .env files.
- Validation through Pydantic DTOs and a ValidationPipe that reports errors in one consistent shape.
Production modules
Each of these is documented on its own page, with a guide here on the site.
| Capability | What you get |
|---|---|
| Database | Entities, repositories, a query builder, transactions and Alembic migrations |
| Authentication | Argon2id password hashing, JWT access tokens, refresh tokens and TOTP |
| Authorization | Role and permission checks on top of authentication |
| Multi-tenancy | A request-scoped tenant context, a tenant guard and tenant-aware entities |
| Security | Secure headers, rate limiting, idempotency keys, CSRF protection and PII redaction |
| Audit log | An append-only audit trail with an @Audited interceptor |
| Background jobs | A queue, workers with retries and backoff, and cron scheduling |
| File storage | A uniform way to read and write uploads and generated files |
| Internationalization | Server-side translation with one JSON file per module per locale |
| Health checks | Terminus-style readiness and liveness indicators |
| Testing | A testing module with real DI and an in-process HTTP client |
What is not implemented yet
Austial is opinionated, not a port of any single framework. The docs list what is intentionally missing, so you can decide with the full picture: request-scoped providers, enforced module import and export visibility, and RxJS-style interceptor streams.
Frequently asked questions
What does batteries-included mean for a Python framework?
It means the common backend concerns, such as configuration, a database layer, authentication, security, background jobs and testing, ship with the framework and share one dependency injection container.
Is Austial production-ready?
The docs include a production-readiness checklist covering the gates a service should pass before it ships. Review it against your own requirements and threat model.
How do I try it?
Install the CLI with uv tool install austial, then run austial new my-app and uv run austial serve.