FastAPI-XKit is a production toolkit for FastAPI.
FastAPI-XKit is a production-grade FastAPI extension toolkit.
It provides:
β
Redis-backed rate limiting
β
JWT authentication
β
RBAC permissions middleware
β
Audit logs stored to database
β
OpenTelemetry metrics/tracing
β
Health + metrics endpoints built-in
π Designed for real apps β not just examples. Install pip install fastapi-xkit Quick Start from fastapi import FastAPI, Depends from fastapixkit import FastAPIXKit
app = FastAPI() kit = FastAPIXKit( jwt_secret="supersecret", redis_url="redis://localhost:6379", rbac_roles={ "admin": {"read", "write", "delete"}, "user": {"read"} }, )
kit.init_app(app)
@app.get("/secure") def secure(user=Depends(kit.auth.require_jwt())): return {"message": "Welcome!", "user": user} Features π‘οΈ JWT Auth
Fast token auth with easy user extraction.
π RBAC
Role-based access control middleware for routes.
π§ Rate Limiting
Redis-powered, safe for containers and across nodes.
π Observability
OpenTelemetry exporter β trace UI (Jaeger, Grafana Tempo).
π Audit Logs
Logs are saved to PostgreSQL or any SQL via SQLAlchemy.
Example Endpoints GET /health GET /metrics GET /secure (JWT required) Configuration Example kit = FastAPIXKit( jwt_secret="MY_SECRET", redis_url="redis://127.0.0.1:6379/0", rbac_roles={ "admin": ["*"], "editor": ["read", "write"], } ) Ecosystem Integrations
β FastAPI β Starlette β SQLAlchemy β Redis β OpenTelemetry (auto metrics + tracing)
Contributing
PRs are very welcome! See CONTRIBUTING.md
License
MIT