( What is in the box )

A batteries-included Python web framework

Austial is built on FastAPI and covers the whole backend, not just routing. Each capability is a module you import, wired through the same dependency injection container, so the pieces fit together instead of being assembled from unrelated libraries.

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.

Production modules
CapabilityWhat you get
DatabaseEntities, repositories, a query builder, transactions and Alembic migrations
AuthenticationArgon2id password hashing, JWT access tokens, refresh tokens and TOTP
AuthorizationRole and permission checks on top of authentication
Multi-tenancyA request-scoped tenant context, a tenant guard and tenant-aware entities
SecuritySecure headers, rate limiting, idempotency keys, CSRF protection and PII redaction
Audit logAn append-only audit trail with an @Audited interceptor
Background jobsA queue, workers with retries and backoff, and cron scheduling
File storageA uniform way to read and write uploads and generated files
InternationalizationServer-side translation with one JSON file per module per locale
Health checksTerminus-style readiness and liveness indicators
TestingA 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.

Go deeper in the docs

( Keep reading )

( Click. Copy. Build. )

Seeing “command not found”? Run uv tool update-shell, then open a new terminal. Details