<!--lint disable double-link-->
Awesome FastAPI | 
A curated list of awesome things related to FastAPI.
FastAPI is a modern, high-performance, batteries-included Python web framework that's perfect for building RESTful APIs.
Contents
Third-Party Extensions
Admin
- FastAPI Admin - Functional admin panel that provides a user interface for performing CRUD operations on your data. Currently only works with the Tortoise ORM.
- FastAPI Amis Admin - A high-performance, efficient and easily extensible FastAPI admin framework.
- Piccolo Admin - A powerful and modern admin GUI, using the Piccolo ORM.
- SQLAlchemy Admin - Admin Panel for FastAPI/Starlette that works with SQLAlchemy models.
- Starlette Admin - Admin framework for FastAPI/Starlette, supporting SQLAlchemy, SQLModel, MongoDB, and ODMantic.
Auth
Databases
ORMs
- Edgy ORM - Complex databases made simple.
- FastAPI SQLAlchemy - Simple integration between FastAPI and SQLAlchemy.
- Fastapi-SQLA - SQLAlchemy extension for FastAPI with support for pagination, asyncio, and pytest.
- FastAPIwee - A simple way to create REST API based on PeeWee models.
- GINO - A lightweight asynchronous ORM built on top of SQLAlchemy core for Python asyncio.
- ORM - An async ORM.
- ormar - Ormar is an async ORM that uses Pydantic validation and can be used directly in FastAPI requests and responses so you are left with only one set of models to maintain. Alembic migrations included.
- Piccolo - An async ORM and query builder, supporting Postgres and SQLite, with batteries (migrations, security, etc).
- Prisma Client Python - An auto-generated, fully type safe ORM powered by Pydantic and tailored specifically for your schema - supports SQLite, PostgreSQL, MySQL, MongoDB, MariaDB and more.
- Tortoise ORM - An easy-to-use asyncio ORM (Object Relational Mapper) inspired by Django.
- Saffier ORM - The only Python ORM you will ever need.
- SQLModel - SQLModel (which is powered by Pydantic and SQLAlchemy) is a library for interacting with SQL databases from Python code, with Python objects.
Query Builders
ODMs
- Beanie - Asynchronous Python ODM for MongoDB, based on Motor and Pydantic, which supports data and schema migrations out of the box.
- MongoEngine - A Document-Object Mapper (think ORM, but for document databases) for working with MongoDB from Python.
- Motor - Asynchronous Python driver for MongoDB.
- ODMantic - AsyncIO MongoDB ODM integrated with Pydantic.
- PynamoDB - A pythonic interface to Amazon's DynamoDB.
Other Tools
Developer Tools
Email
- FastAPI Mail - Lightweight mail system for sending emails and attachments (individual and bulk).
Utils
- ASGI Correlation ID - Request ID logging middleware.
- FastAPI Cache - A simple lightweight cache system.
- FastAPI Cache - A tool to cache FastAPI response and function results, with support for Redis, Memcached, DynamoDB, and in-memory backends.
- FastAPI Chameleon - Adds integration of the Chameleon template language to FastAPI.
- FastAPI CloudEvents - CloudEvents integration for FastAPI.
- FastAPI Contrib - Opinionated set of utilities: pagination, auth middleware, permissions, custom exception handlers, MongoDB support, and Opentracing middleware.
- FastAPI CRUDRouter - A FastAPI router that automatically creates and documents CRUD routes for your models.
- FastAPI Events - Asynchronous event dispatching/handling library for FastAPI and Starlette.
- FastAPI FeatureFlags - Simple implementation of feature flags for FastAPI.
- FastAPI Jinja - Adds integration of the Jinja template language to FastAPI.
- FastAPI Lazy - Lazy package to start your project using FastAPI.
- FastAPI Limiter - A request rate limiter for FastAPI.
- FastAPI MQTT - An extension for the MQTT protocol.
- FastAPI Opentracing - Opentracing middleware and database tracing support for FastAPI.
- FastAPI Pagination - Pagination for FastAPI.
- FastAPI Plugins - Redis and Scheduler plugins.
- FastAPI ServiceUtils - Generator for creating API services.
- FastAPI SocketIO - Easy integration for FastAPI and SocketIO.
- FastAPI Utilities - Reusable utilities: class-based views, response inferring router, periodic tasks, timing middleware, SQLAlchemy session, OpenAPI spec simplification.
- FastAPI Websocket Pub/Sub - The classic pub/sub pattern made easily accessible and scalable over the web and across your cloud in realtime.
- FastAPI Websocket RPC - RPC (bidirectional JSON RPC) over Websockets made easy, robust, and production ready.
- OpenTelemetry FastAPI Instrumentation - Library provides automatic and manual instrumentation of FastAPI web frameworks, instrumenting http requests served by applications utilizing the framework.
- Prerender Python Starlette - Starlette middleware for Prerender.
- Prometheus FastAPI Instrumentator - A configurable and modular Prometheus Instrumentator for your FastAPI application.
- SlowApi - Rate limiter (based on Flask-Limiter).
- Starlette Context - Allows you to store and access the request data anywhere in your project, useful for logging.
- Starlette Exporter - One more prometheus integration for FastAPI and Starlette.
- Starlette OpenTracing - Opentracing support for Starlette and FastAPI.
- Starlette Prometheus - Prometheus integration for FastAPI and Starlette.
- Strawberry GraphQL - Python GraphQL library based on dataclasses.
Resources
Official Resources
- Documentation - Comprehensive documentation.
- Tutorial - Official tutorial showing you how to use FastAPI with most of its features, step by step.
- Source Code - Hosted on GitHub.
- Discord - Chat with other FastAPI users.
External Resources
- TestDriven.io FastAPI - Multiple FastAPI-specific articles that focus on developing and testing production-ready RESTful APIs, serving up machine learning models, and more.
Podcasts
Articles
Tutorials