Python - Asyncio
Web Frameworks
10_ENTRIESLibraries to build web applications.
- FastAPI
A very high performance Python 3.6+ API framework based on type hints. Powered by Starlette and Pydantic.
- Django
An established, high-level Python web framework with a huge community and ecosystem.
- Starlette
A lightweight ASGI framework/toolkit for building high performance services.
- aiohttp
Http client/server for asyncio (PEP-3156).
- sanic
Python 3.5+ web server that's written to go fast.
- Quart
An asyncio web microframework with the same API as Flask.
- autobahn
WebSocket and WAMP supporting asyncio and Twisted, for clients and servers.
- websockets
A library for building WebSocket servers and clients in Python with a focus on correctness and simplicity.
- Tornado
Performant web framework and asynchronous networking library.
- uvicorn
The lightning-fast ASGI server.
Message Queues
6_ENTRIESLibraries to implement applications using message queues.
- aioamqp
AMQP implementation using asyncio.
- pyzmq
Python bindings for ZeroMQ.
- aiozmq
Alternative Asyncio integration with ZeroMQ.
- crossbar
Crossbar.io is a networking platform for distributed and microservice applications.
- asyncio-nats
Client for the NATS messaging system.
- aiokafka
Client for Apache Kafka.
Database Drivers
17_ENTRIESLibraries to connect to databases.
- asyncpg
Fast PostgreSQL Database Client Library for Python/asyncio.
- asyncpgsa
Asyncpg with sqlalchemy core support.
- aiopg
Library for accessing a PostgreSQL database.
- aiomysql
Library for accessing a MySQL database
- aioodbc
Library for accessing a ODBC databases.
- pymongo
The Official MongoDB Python driver, offering both synchronous and asynchronous APIs.
- aiocouchdb
CouchDB client built on top of aiohttp (asyncio).
- aioinflux
InfluxDB client built on top of aiohttp.
- aioes
Asyncio compatible driver for elasticsearch.
- peewee-async
ORM implementation based on peewee and aiopg.
- GINO
is a lightweight asynchronous Python ORM based on SQLAlchemy core, with asyncpg dialect.
- Tortoise ORM
native multi-backend ORM with Django-like API and easy relations management.
- Databases
Async database access for SQLAlchemy core, with support for PostgreSQL, MySQL, and SQLite.
- 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.
- Piccolo
An ORM / query builder which can work in async and sync modes, with a nice admin GUI, and ASGI middleware.
Networking
4_ENTRIESLibraries to communicate in your network.
GraphQL
3_ENTRIESLibraries to build GraphQL servers.
- Ariadne
Schema-first Python library for implementing GraphQL servers.
- Tartiflette
Schema-first Python 3.6+ GraphQL engine built on top of
libgraphqlparser. - Strawberry
Code-first Python 3 GraphQL server with Django, Flask and FastAPI/Starlette support.
Testing
5_ENTRIESLibraries to test asyncio based applications.
- aiomock
A python mock library that supports async methods.
- asynctest
Enhance the standard unittest package with features for testing. asyncio libraries
- pytest-asyncio
Pytest support for asyncio.
- aresponses
Asyncio http mocking. Similar to the responses library used for requests.
- aioresponses
Helper for mock/fake web requests in Python aiohttp package.
Alternative Loops
1_ENTRIESAlternative asyncio loop implementations.
- uvloop
Ultra fast implementation of asyncio event loop on top of libuv.
Misc
15_ENTRIESOther awesome asyncio libraries.
- aiochan
CSP-style concurrency with channels, select and multiprocessing on top of asyncio.
- aiocache
Cache manager for different backends.
- aiofiles
File support for asyncio.
- aiopath
Asynchronous
pathlibfor asyncio. - aiodebug
A tiny library for monitoring and testing asyncio programs.
- aiorun
A
run()function that handles all the usual boilerplate for startup and graceful shutdown. - aiosc
Lightweight Open Sound Control implementation.
- aiozipkin
Distributed tracing instrumentation for asyncio with zipkin
- asgiref
Backend utils for ASGI to WSGI integration, includes sync_to_async and async_to_sync function wrappers.
- async_property
Python decorator for async properties.
- ruia
An async web scraping micro-framework based on asyncio.
- kubernetes_asyncio
Asynchronous client library for Kubernetes.
- aiomisc
Miscellaneous utils for
asyncio. - taskiq
Asynchronous distributed task manager (like celery, but async).
Writings
8_ENTRIESDocumentation, blog posts, and other awesome writing about asyncio.
- Official asyncio documentation
Asynchronous I/O, event loop, coroutines and tasks.
- Short well-written intro to asyncio
Generators, Coroutines, Native Coroutines and async/await.
- AsyncIO for the Working Python Developer
A gentle introduction to asynchronous programming from basic examples working up to URL fetching.
- Test limits of Python aiohttp
Making 1 million requests with python-aiohttp.
- ASGI (Asynchronous Server Gateway Interface)
A spiritual successor to WSGI, intended to provide a standard interface between async-capable Python web servers, frameworks, and applications.
- First Principles Introduction to Asyncio
A no-buzzword first principles introduction to the internal workings of asyncio.
- Developing and Testing an Asynchronous API with FastAPI and Pytest
This tutorial looks at how to develop and test an asynchronous API with FastAPI using Test-Driven Development (TDD).
- Python Concurrency with asyncio
Learn how to speed up slow Python code with concurrent programming and the cutting-edge asyncio library.
Talks
6_ENTRIESRecordings of awesome talks about asyncio.
- Topics of Interest (Python Asyncio)
| screencast | slides - PyCon Brasil 2015 keynote (David Beazley).
- Python Asynchronous I/O Walkthrough
8-part code walkthrough (Philip Guo).
- Async/await in Python 3.5 and why it is awesome
EuroPython 2016 (Yury Selivanov).
- Fear and Awaiting in Async: A Savage Journey to the Heart of the Coroutine Dream
| screencast - PyOhio 2016 keynote (David Beazley).
- Asynchronous Python for the Complete Beginner
| slides - PyCon 2017 (Miguel Grinberg).
- Demystifying Python's Async and Await Keywords
JetBrains TV 2020 (Michael Kennedy)
Alternatives to asyncio
3_ENTRIESAlternative approaches to async programming in Python, some of which attempt to support some compatibility with asyncio, others are not compatible at all.
- curio
The coroutine concurrency library.Curio-Asyncio Bridge - basic curio -> asyncio coroutine bridge.
- trio
Pythonic async I/O for humans and snake people.trio-asyncio - re-implementation of the asyncio mainloop on top of Trio.
- AnyIO
High level asynchronous concurrency and networking framework that works on top of either trio or asyncio.