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
- 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.
- 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.
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
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
Talks
Videos
Courses
Best Practices
Hosting
PaaS
(Platforms-as-a-Service)
IaaS
(Infrastructure-as-a-Service)
Serverless
Frameworks:
Compute:
Projects
Boilerplate
- Full
Stack FastAPI and PostgreSQL - Base Project Generator - Full stack,
modern web application generator, which includes FastAPI, PostgreSQL,
Docker, Celery, Vue frontend, automatic HTTPS and more (developed by the
creator of FastAPI, Sebastián
Ramírez).
- FastAPI and
Tortoise ORM - Powerful but simple template for web APIs w/ FastAPI
(as web framework) and Tortoise-ORM (for working via database without
headache).
- FastAPI
Model Server Skeleton - Skeleton app to serve machine learning
models production-ready.
- cookiecutter-spacy-fastapi
- Quick deployments of spaCy models with FastAPI.
- cookiecutter-fastapi
- Cookiecutter template for FastAPI projects using: Machine Learning,
Poetry, Azure Pipelines and pytest.
- openapi-python-client
- Generate modern FastAPI Python clients (via FastAPI) from
OpenAPI.
- Pywork - Yeoman generator to scaffold a FastAPI
app.
- fastapi-gino-arq-uvicorn
- Template for a high-performance async REST API, in Python. FastAPI +
GINO + Arq + Uvicorn (w/ Redis and PostgreSQL).
- FastAPI and React
Template - Full stack cookiecutter boilerplate using FastAPI,
TypeScript, Docker, PostgreSQL, and React.
- FastAPI Nano -
Simple FastAPI template with factory pattern architecture.
- FastAPI
template - Flexible, lightweight FastAPI project generator. It
includes support for SQLAlchemy, multiple databases, CI/CD, Docker, and
Kubernetes.
- FastAPI on
Google Cloud Run - Boilerplate for API building with FastAPI,
SQLModel, and Google Cloud Run.
- FastAPI with
Firestore - Boilerplate for API building with FastAPI and Google
Cloud Firestore.
- fastapi-alembic-sqlmodel-async
- This is a project template which uses FastAPI, Alembic, and async
SQLModel as ORM.
- fastapi-starter-project
- A project template which uses FastAPI, SQLModel, Alembic, Pytest,
Docker, GitHub Actions CI.
Docker Images
- inboard -
Docker images to power your FastAPI apps and help you ship faster.
- uvicorn-gunicorn-fastapi-docker
- Docker image with Uvicorn managed by Gunicorn for high-performance
FastAPI web applications in Python 3.7 and 3.6 with performance
auto-tuning.
- uvicorn-gunicorn-poetry
- This Docker image provides a platform to run FastAPI using Gunicorn
with Uvicorn workers. It provides Poetry for managing dependencies and
setting up a virtual environment in the container.
- uvicorn-poetry
- This Docker image provides a platform to run FastAPI with Uvicorn on
Kubernetes container orchestration system. It provides Poetry for
managing dependencies and setting up a virtual environment in the
container.
Open Source Projects
- Astrobase
- Simple, fast, and secure deployments anywhere.
- Awesome
FastAPI Projects - Organized list of projects that use FastAPI.
- Bitcart - Platform
for merchants, users and developers which offers easy setup and
use.
- Bali - Simplify
Cloud Native Microservices development base on FastAPI and gRPC.
- Bunnybook - A
tiny social network built with FastAPI, React+RxJs, Neo4j, PostgreSQL,
and Redis.
- Coronavirus-tg-api
- API for tracking the global coronavirus (COVID-19, SARS-CoV-2)
outbreak.
- Dispatch - Manage
security incidents.
- FastAPI CRUD Example:
- FastAPI
with Observability - Observe FastAPI app with three pillars of
observability: Traces (Tempo), Metrics (Prometheus), Logs (Loki) on
Grafana through OpenTelemetry and OpenMetrics.
- DogeAPI - API with
high performance to create a simple blog and CRUD with
OAuth2PasswordBearer.
- FastAPI
Websocket Broadcast - Websocket ‘broadcast’ demo.
- FastAPI
with Celery, RabbitMQ, and Redis - Minimal example utilizing FastAPI
and Celery with RabbitMQ for task queue, Redis for Celery backend, and
Flower for monitoring the Celery tasks.
- JeffQL - Simple
authentication and login API using GraphQL and JWT.
- JSON-RPC
Server - JSON-RPC server based on FastAPI.
- Mailer -
Dead-simple mailer micro-service for static websites.
- Markdown-Videos
- API for generating thumbnails to embed into your markdown
content.
- Nemo
- Be productive with Nemo.
- OPAL (Open Policy
Administration Layer) - Real-time authorization updates on top of
Open-Policy; built with FastAPI, Typer, and FastAPI WebSocket
pub/sub.
- RealWorld
Example App - mongo
- RealWorld
Example App - postgres
- redis-streams-fastapi-chat
- A simple Redis Streams backed chat app using Websockets, Asyncio and
FastAPI/Starlette.
- Sprites as
a service - Generate your personal 8-bit avatars using Cellular
Automata.
- Slackers - Slack
webhooks API.
- TermPair - View and
control terminals from your browser with end-to-end encryption.
- Universities - API
service for obtaining information about +9600 universities
worldwide.
Please support this open source project by checking out our
sponsors:
