Curated list of awesome lists
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.
Other 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 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: