In progress
These features are currently being worked on:Core features
- Logging and metrics - Built-in logging tools for better observability
- Async middleware support - Full async/await support in middleware
- Lifespan events -
@app.on_startupand@app.on_shutdowndecorators - Better error handling - Python-friendly error pages (no Rust tracebacks in production)
- Rate limiter - Request rate limiting (even FastAPI doesn’t have this yet)
API structure
- Sub-APIs and includes - Modular API organization
- APIRouter -
include_router(prefix=..., tags=..., dependencies=...) - app.mount() - Mount static files and sub-applications
- Exception handlers -
@app.exception_handler()andapp.add_exception_handler()
Developer experience
- Hot reloading - Automatic reload on code changes with watchfiles integration
- Testing support - Built-in TestClient (Starlette testclient style)
- app.state - Mutable app-wide state management
Advanced features
- response_model=None - Allow raw Response / RedirectResponse returns
- GraphQL support - Native GraphQL endpoint support
- Lifespan context manager - Modern
lifespan=context manager style - Advanced dependency scopes - Request vs function-level dependency injection
- Rust → Python FFI helpers - Expose fast Rust endpoints to Python
OpenAPI enhancements
- app.openapi() - Customizable OpenAPI spec generation
- app.openapi_tags= - Tag ordering in Swagger UI
- callbacks= and webhooks= - OpenAPI callbacks and webhooks support
- app.servers= - Server configuration and root_path
- openapi_external_docs - External documentation links
- app.swagger_ui_parameters= - Swagger UI customization
- separate_input_output_schemas - Better OpenAPI schema generation
Observability and monitoring
- Metrics endpoint - Prometheus-compatible metrics
- Full middleware ordering control - Fine-grained middleware configuration
Completed features
These features have been implemented:- ✅ WebSockets - Native WebSocket support with bounded channels
- ✅ Form/Multipart support - File uploads and form data handling
- ✅ Security utilities - OAuth2, JWT, and authentication helpers
- ✅ Rust integration - Full PyO3 and Axum integration
- ✅ Dependency injection - One-time parsing with pre-built injection plans
- ✅ Static file serving - UploadFile and multipart file handling
Performance goals
FastrAPI aims to maintain and improve its performance advantages:- Maintain 30x+ performance advantage over FastAPI
- Sub-millisecond average latency
- Efficient memory usage through Rust’s ownership model
- Scalability to 10,000+ routes with O(1) lookup