awesome-asyncio
A curated list of awesome Python asyncio frameworks, libraries, software and resources
https://github.com/timofurrer/awesome-asyncio
Last synced: 1 day ago
JSON representation
-
Web Frameworks
- Tornado - Performant web framework and asynchronous networking library.
- sanic - Python 3.5+ web server that's written to go fast.
- Tornado - Performant web framework and asynchronous networking library.
- 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.
- Quart - An asyncio web microframework with the same API as Flask.
- autobahn - WebSocket and WAMP supporting asyncio and Twisted, for clients and servers.
- uvicorn - The lightning-fast ASGI server.
- aiohttp - Http client/server for asyncio (PEP-3156).
- websockets - A library for building WebSocket servers and clients in Python with a focus on correctness and simplicity.
-
Database Drivers
- Beanie - An async MongoDB ODM built on [motor](https://github.com/mongodb/motor) and [Pydantic](https://pydantic-docs.helpmanual.io).
- aiopg - Library for accessing a PostgreSQL database.
- aioes - Asyncio compatible driver for elasticsearch.
- GINO - is a lightweight asynchronous Python ORM based on [SQLAlchemy](https://www.sqlalchemy.org/) core, with [asyncpg](https://github.com/MagicStack/asyncpg) dialect.
- Beanie - An async MongoDB ODM built on [motor](https://github.com/mongodb/motor) and [Pydantic](https://pydantic-docs.helpmanual.io).
- asyncpg - Fast PostgreSQL Database Client Library for Python/asyncio.
- asyncpgsa - Asyncpg with sqlalchemy core support.
- aiomysql - Library for accessing a MySQL database
- aioodbc - Library for accessing a ODBC databases.
- motor - The async Python driver for MongoDB.
- redis-py - Redis Python Client (which includes [aioreadis](https://github.com/aio-libs/aioredis) now).
- aiocouchdb - CouchDB client built on top of aiohttp (asyncio).
- peewee-async - ORM implementation based on [peewee](https://github.com/coleifer/peewee) and aiopg.
- 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.
-
GraphQL
- Ariadne - Schema-first Python library for implementing GraphQL servers.
- Strawberry - Code-first Python 3 GraphQL server with Django, Flask and FastAPI/Starlette support.
- Tartiflette - Schema-first Python 3.6+ GraphQL engine built on top of `libgraphqlparser`.
-
Writings
- AsyncIO for the Working Python Developer - A gentle introduction to asynchronous programming from basic examples working up to URL fetching.
- Short well-written intro to asyncio - Generators, Coroutines, Native Coroutines and async/await.
- Official asyncio documentation - Asynchronous I/O, event loop, coroutines and tasks.
- 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
- Topics of Interest (Python Asyncio) - of-interest-async) - 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).
- Topics of Interest (Python Asyncio) - of-interest-async) - PyCon Brasil 2015 keynote (David Beazley).
- Python Asynchronous I/O Walkthrough - 8-part code walkthrough (Philip Guo).
- Fear and Awaiting in Async: A Savage Journey to the Heart of the Coroutine Dream - PyOhio 2016 keynote (David Beazley).
- Asynchronous Python for the Complete Beginner - grinberg-asynchronous-python-for-the-complete-beginner) - PyCon 2017 (Miguel Grinberg).
- Demystifying Python's Async and Await Keywords - JetBrains TV 2020 (Michael Kennedy)
-
Networking
- aiodns - Simple DNS resolver for asyncio.
- AsyncSSH - Provides an asynchronous client and server implementation of the SSHv2 protocol.
- aioping - Fast asyncio implementation of ICMP (ping) protocol.
- httpx - asynchronous HTTP client for Python 3 with [requests](https://github.com/psf/requests) compatible API.
-
Testing
- 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.
- aioresponses - Helper for mock/fake web requests in Python aiohttp package.
-
Misc
- aiofiles - File support for asyncio.
- aiochan - CSP-style concurrency with channels, select and multiprocessing on top of asyncio.
- aiopath - Asynchronous `pathlib` for 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).
-
Alternatives to asyncio
- curio - The coroutine concurrency library.
- 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.
- Curio-Asyncio Bridge - basic curio -> asyncio coroutine bridge.
-
Message Queues
-
Alternative Loops
- uvloop - Ultra fast implementation of asyncio event loop on top of libuv.
Categories
Sub Categories
Keywords
asyncio
30
python
24
async
9
async-await
7
postgresql
6
mysql
6
sqlite
5
aiohttp
5
asgi
4
orm
4
python3
4
asynchronous
3
sqlalchemy
3
async-python
3
trio
3
networking
3
http
3
zeromq
2
postgres
2
uvloop
2
mongodb
2
websocket
2
wamp
2
python-3
2
database
2
http-server
2
high-performance
2
libuv
1
curio
1
async-programming
1
database-driver
1
asyncio-spider
1
crawler
1
crawling-framework
1
middlewares
1
python-ruia
1
ruia
1
event-loop
1
spider
1
structured-concurrency
1
io
1
quart
1
autobahn
1
fastapi
1
piccolo
1
redis-py
1
query-builder
1
redis-cluster
1
starlette
1
redis-client
1