172 lines
26 KiB
Plaintext
172 lines
26 KiB
Plaintext
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome asyncio [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://github.com/sindresorhus/awesome)[0m
|
||
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mA carefully curated list of awesome Python asyncio frameworks, libraries, software and resources.[39m
|
||
|
||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;14m[1masyncio[0m[38;5;12m [39m[38;5;12m(https://docs.python.org/3/library/asyncio.html)[39m[38;5;12m [39m[38;5;12mmodule[39m[38;5;12m [39m[38;5;12mintroduced[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;12m3.4[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12minfrastructure[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mwriting[39m[38;5;12m [39m[38;5;12msingle-threaded[39m[38;5;12m [39m[38;5;12mconcurrent[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mcoroutines,[39m
|
||
[38;5;12mmultiplexing[39m[38;5;12m [39m[38;5;12mI/O[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mover[39m[38;5;12m [39m[38;5;12msockets[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mresources,[39m[38;5;12m [39m[38;5;12mrunning[39m[38;5;12m [39m[38;5;12mnetwork[39m[38;5;12m [39m[38;5;12mclients[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mservers,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mrelated[39m[38;5;12m [39m[38;5;12mprimitives.[39m
|
||
|
||
[38;5;12mAsyncio is not really a brand-new technology however it appears to be very trending since a few years - especially in the Python community and with the release of Python 3.4 in March 2014.[39m
|
||
[38;5;12mThus, it's pretty hard to keep yourself up-to-date with the most awesome packages out there.[39m
|
||
[38;5;12mFind[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[48;2;30;30;40m[38;5;13m[3mawesome[0m[38;5;12m [39m[38;5;12mpackages[39m[38;5;12m [39m[38;5;12mhere[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mif[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mmissing[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mcount[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;14m[1mcreate[0m[38;5;14m[1m [0m[38;5;14m[1man[0m[38;5;14m[1m [0m[38;5;14m[1mIssue[0m[38;5;14m[1m [0m[38;5;14m[1mor[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mPull[0m[38;5;14m[1m [0m[38;5;14m[1mRequest[0m[38;5;12m [39m[38;5;12m(https://github.com/timofurrer/awesome-asyncio/blob/master/CONTRIBUTING.md)[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m
|
||
[38;5;12msuggestion.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWeb Frameworks[0m[38;5;12m (#web-frameworks)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMessage Queues[0m[38;5;12m (#message-queues)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDatabase Drivers[0m[38;5;12m (#database-drivers)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNetworking[0m[38;5;12m (#networking)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGraphQL[0m[38;5;12m (#graphql)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTesting[0m[38;5;12m (#testing)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAlternative Loops[0m[38;5;12m (#alternative-loops)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMisc[0m[38;5;12m (#misc)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWritings[0m[38;5;12m (#writings)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTalks[0m[38;5;12m (#talks)[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAlternatives to asyncio[0m[38;5;12m (#alternatives-to-asyncio)[39m
|
||
|
||
[38;5;14m[1m*[0m
|
||
|
||
[38;2;255;187;0m[4mWeb Frameworks[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mLibraries to build web applications.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFastAPI[0m[38;5;12m (https://github.com/tiangolo/fastapi) - A very high performance Python 3.6+ API framework based on type hints. Powered by Starlette and Pydantic.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDjango[0m[38;5;12m (https://www.djangoproject.com/) - An established, high-level Python web framework with a huge community and ecosystem.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mStarlette[0m[38;5;12m (https://github.com/encode/starlette) - A lightweight ASGI framework/toolkit for building high performance services.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiohttp[0m[38;5;12m (https://github.com/KeepSafe/aiohttp) - Http client/server for asyncio (PEP-3156).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1msanic[0m[38;5;12m (https://github.com/channelcat/sanic) - Python 3.5+ web server that's written to go fast.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mQuart[0m[38;5;12m (https://github.com/pallets/quart) - An asyncio web microframework with the same API as Flask.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mautobahn[0m[38;5;12m (https://github.com/crossbario/autobahn-python) - WebSocket and WAMP supporting asyncio and Twisted, for clients and servers.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mwebsockets[0m[38;5;12m (https://github.com/aaugustin/websockets/) - A library for building WebSocket servers and clients in Python with a focus on correctness and simplicity.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTornado[0m[38;5;12m (http://www.tornadoweb.org/en/stable/) - Performant web framework and asynchronous networking library.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1muvicorn[0m[38;5;12m (https://github.com/encode/uvicorn) - The lightning-fast ASGI server.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mMessage Queues[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mLibraries to implement applications using message queues.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioamqp[0m[38;5;12m (https://github.com/Polyconseil/aioamqp) - AMQP implementation using asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpyzmq[0m[38;5;12m (https://github.com/zeromq/pyzmq) - Python bindings for ZeroMQ.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiozmq[0m[38;5;12m (https://github.com/aio-libs/aiozmq) - Alternative Asyncio integration with ZeroMQ.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcrossbar[0m[38;5;12m (https://github.com/crossbario/crossbar) - Crossbar.io is a networking platform for distributed and microservice applications.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1masyncio-nats[0m[38;5;12m (https://github.com/nats-io/asyncio-nats) - Client for the NATS messaging system.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiokafka[0m[38;5;12m (https://github.com/aio-libs/aiokafka) - Client for Apache Kafka.[39m
|
||
|
||
[38;2;255;187;0m[4mDatabase Drivers[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mLibraries to connect to databases.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1masyncpg[0m[38;5;12m (https://github.com/MagicStack/asyncpg) - Fast PostgreSQL Database Client Library for Python/asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1masyncpgsa[0m[38;5;12m (https://github.com/CanopyTax/asyncpgsa) - Asyncpg with sqlalchemy core support.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiopg[0m[38;5;12m (https://github.com/aio-libs/aiopg/) - Library for accessing a PostgreSQL database.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiomysql[0m[38;5;12m (https://github.com/aio-libs/aiomysql) - Library for accessing a MySQL database[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioodbc[0m[38;5;12m (https://github.com/aio-libs/aioodbc) - Library for accessing a ODBC databases.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mmotor[0m[38;5;12m (https://github.com/mongodb/motor) - The async Python driver for MongoDB.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mredis-py[0m[38;5;12m (https://github.com/redis/redis-py) - Redis Python Client (which includes [39m[38;5;14m[1maioreadis[0m[38;5;12m (https://github.com/aio-libs/aioredis) now).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiocouchdb[0m[38;5;12m (https://github.com/aio-libs/aiocouchdb) - CouchDB client built on top of aiohttp (asyncio).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioinflux[0m[38;5;12m (https://github.com/plugaai/aioinflux) - InfluxDB client built on top of aiohttp.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioes[0m[38;5;12m (https://github.com/aio-libs/aioes) - Asyncio compatible driver for elasticsearch.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpeewee-async[0m[38;5;12m (https://github.com/05bit/peewee-async) - ORM implementation based on [39m[38;5;14m[1mpeewee[0m[38;5;12m (https://github.com/coleifer/peewee) and aiopg.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGINO[0m[38;5;12m (https://github.com/fantix/gino) - is a lightweight asynchronous Python ORM based on [39m[38;5;14m[1mSQLAlchemy[0m[38;5;12m (https://www.sqlalchemy.org/) core, with [39m[38;5;14m[1masyncpg[0m[38;5;12m (https://github.com/MagicStack/asyncpg) dialect.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTortoise ORM[0m[38;5;12m (https://github.com/tortoise/tortoise-orm) - native multi-backend ORM with Django-like API and easy relations management.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDatabases[0m[38;5;12m (https://github.com/encode/databases) - Async database access for SQLAlchemy core, with support for PostgreSQL, MySQL, and SQLite.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPrisma[0m[38;5;14m[1m [0m[38;5;14m[1mClient[0m[38;5;14m[1m [0m[38;5;14m[1mPython[0m[38;5;12m [39m[38;5;12m(https://github.com/RobertCraigie/prisma-client-py)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mauto-generated,[39m[38;5;12m [39m[38;5;12mfully[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12msafe[39m[38;5;12m [39m[38;5;12mORM[39m[38;5;12m [39m[38;5;12mpowered[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mPydantic[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtailored[39m[38;5;12m [39m[38;5;12mspecifically[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mschema[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12msupports[39m[38;5;12m [39m[38;5;12mSQLite,[39m[38;5;12m [39m[38;5;12mPostgreSQL,[39m[38;5;12m [39m
|
||
[38;5;12mMySQL,[39m[38;5;12m [39m[38;5;12mMongoDB,[39m[38;5;12m [39m[38;5;12mMariaDB[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmore.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPiccolo[0m[38;5;12m (https://github.com/piccolo-orm/piccolo) - An ORM / query builder which can work in async and sync modes, with a nice admin GUI, and ASGI middleware.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBeanie[0m[38;5;12m (https://beanie-odm.dev) - An async MongoDB ODM built on [39m[38;5;14m[1mmotor[0m[38;5;12m (https://github.com/mongodb/motor) and [39m[38;5;14m[1mPydantic[0m[38;5;12m (https://pydantic-docs.helpmanual.io).[39m
|
||
|
||
[38;2;255;187;0m[4mNetworking[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mLibraries to communicate in your network.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAsyncSSH[0m[38;5;12m (https://github.com/ronf/asyncssh) - Provides an asynchronous client and server implementation of the SSHv2 protocol.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiodns[0m[38;5;12m (https://github.com/saghul/aiodns) - Simple DNS resolver for asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioping[0m[38;5;12m (https://github.com/stellarbit/aioping) - Fast asyncio implementation of ICMP (ping) protocol.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mhttpx[0m[38;5;12m (https://github.com/encode/httpx) - asynchronous HTTP client for Python 3 with [39m[38;5;14m[1mrequests[0m[38;5;12m (https://github.com/psf/requests) compatible API.[39m
|
||
|
||
[38;2;255;187;0m[4mGraphQL[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mLibraries to build GraphQL servers.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAriadne[0m[38;5;12m (https://ariadnegraphql.org) - Schema-first Python library for implementing GraphQL servers.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTartiflette[0m[38;5;12m (https://tartiflette.io/) - Schema-first Python 3.6+ GraphQL engine built on top of [39m[48;5;235m[38;5;249mlibgraphqlparser[49m[39m[38;5;12m.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mStrawberry[0m[38;5;12m (https://strawberry.rocks) - Code-first Python 3 GraphQL server with Django, Flask and FastAPI/Starlette support.[39m
|
||
|
||
[38;2;255;187;0m[4mTesting[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mLibraries to test asyncio based applications.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiomock[0m[38;5;12m (https://github.com/nhumrich/aiomock/) - A python mock library that supports async methods.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1masynctest[0m[38;5;12m (https://github.com/Martiusweb/asynctest/) - Enhance the standard unittest package with features for testing. asyncio libraries[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpytest-asyncio[0m[38;5;12m (https://github.com/pytest-dev/pytest-asyncio) - Pytest support for asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maresponses[0m[38;5;12m (https://github.com/CircleUp/aresponses) - Asyncio http mocking. Similar to the [39m[38;5;14m[1mresponses[0m[38;5;12m (https://github.com/getsentry/responses) library used for [39m[38;5;14m[1mrequests[0m[38;5;12m (https://github.com/requests/requests).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioresponses[0m[38;5;12m (https://github.com/pnuckowski/aioresponses) - Helper for mock/fake web requests in Python aiohttp package.[39m
|
||
|
||
[38;2;255;187;0m[4mAlternative Loops[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mAlternative asyncio loop implementations.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1muvloop[0m[38;5;12m (https://github.com/MagicStack/uvloop) - Ultra fast implementation of asyncio event loop on top of libuv.[39m
|
||
|
||
[38;2;255;187;0m[4mMisc[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mOther awesome asyncio libraries.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiochan[0m[38;5;12m (https://github.com/zh217/aiochan) - CSP-style concurrency with channels, select and multiprocessing on top of asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiocache[0m[38;5;12m (https://github.com/argaen/aiocache) - Cache manager for different backends.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiofiles[0m[38;5;12m (https://github.com/Tinche/aiofiles/) - File support for asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiopath[0m[38;5;12m (https://github.com/alexdelorenzo/aiopath) - Asynchronous [39m[48;5;235m[38;5;249mpathlib[49m[39m[38;5;12m for asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiodebug[0m[38;5;12m (https://github.com/qntln/aiodebug) - A tiny library for monitoring and testing asyncio programs.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiorun[0m[38;5;12m (https://github.com/cjrh/aiorun) - A [39m[48;5;235m[38;5;249mrun()[49m[39m[38;5;12m function that handles all the usual boilerplate for startup and graceful shutdown.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiosc[0m[38;5;12m (https://github.com/artfwo/aiosc) - Lightweight Open Sound Control implementation.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maioserial[0m[38;5;12m (https://github.com/changyuheng/aioserial) - A drop-in replacement of [39m[38;5;14m[1mpySerial[0m[38;5;12m (https://github.com/pyserial/pyserial).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiozipkin[0m[38;5;12m (https://github.com/aio-libs/aiozipkin) - Distributed tracing instrumentation for asyncio with zipkin[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1masgiref[0m[38;5;12m (https://github.com/django/asgiref) - Backend utils for ASGI to WSGI integration, includes sync_to_async and async_to_sync function wrappers.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1masync_property[0m[38;5;12m (https://github.com/ryananguiano/async_property) - Python decorator for async properties.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mruia[0m[38;5;12m (https://github.com/howie6879/ruia) - An async web scraping micro-framework based on asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mkubernetes_asyncio[0m[38;5;12m (https://github.com/tomplus/kubernetes_asyncio) - Asynchronous client library for Kubernetes.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1maiomisc[0m[38;5;12m (https://github.com/aiokitchen/aiomisc) - Miscellaneous utils for [39m[48;5;235m[38;5;249masyncio[49m[39m[38;5;12m.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtaskiq[0m[38;5;12m (https://taskiq-python.github.io/) - Asynchronous distributed task manager (like celery, but async). [39m
|
||
|
||
[38;2;255;187;0m[4mWritings[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mDocumentation, blog posts, and other awesome writing about asyncio.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mOfficial asyncio documentation[0m[38;5;12m (https://docs.python.org/3/library/asyncio.html) - Asynchronous I/O, event loop, coroutines and tasks.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mShort well-written intro to asyncio[0m[38;5;12m (http://masnun.com/2015/11/13/python-generators-coroutines-native-coroutines-and-async-await.html) - Generators, Coroutines, Native Coroutines and async/await.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAsyncIO for the Working Python Developer[0m
|
||
[38;5;12m (https://hackernoon.com/asyncio-for-the-working-python-developer-5c468e6e2e8e) - A gentle introduction to asynchronous programming from basic examples working up to URL fetching.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTest limits of Python aiohttp[0m[38;5;12m (https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html) - Making 1 million requests with python-aiohttp.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mASGI (Asynchronous Server Gateway Interface)[0m
|
||
[38;5;12m (https://asgi.readthedocs.io/en/latest/) - A spiritual successor to WSGI, intended to provide a standard interface between async-capable Python web servers, frameworks, and applications.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFirst Principles Introduction to Asyncio[0m[38;5;12m (https://hackernoon.com/a-simple-introduction-to-pythons-asyncio-595d9c9ecf8c) - A no-buzzword first principles introduction to the internal workings of asyncio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDeveloping and Testing an Asynchronous API with FastAPI and Pytest[0m
|
||
[38;5;12m (https://testdriven.io/blog/fastapi-crud/) - This tutorial looks at how to develop and test an asynchronous API with FastAPI using Test-Driven Development (TDD).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPython Concurrency with asyncio[0m[38;5;12m (https://www.manning.com/books/python-concurrency-with-asyncio) - Learn how to speed up slow Python code with concurrent programming and the cutting-edge asyncio library.[39m
|
||
|
||
[38;2;255;187;0m[4mTalks[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mRecordings of awesome talks about asyncio.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTopics[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mInterest[0m[38;5;14m[1m [0m[38;5;14m[1m(Python[0m[38;5;14m[1m [0m[38;5;14m[1mAsyncio)[0m[38;5;12m [39m[38;5;12m(https://youtu.be/ZzfHjytDceU)[39m[38;5;12m [39m[38;5;12m|[39m[38;5;12m [39m[38;5;14m[1mscreencast[0m[38;5;12m [39m[38;5;12m(https://youtu.be/lYe8W04ERnY)[39m[38;5;12m [39m[38;5;12m|[39m[38;5;12m [39m[38;5;14m[1mslides[0m[38;5;12m [39m[38;5;12m(https://speakerdeck.com/dabeaz/topics-of-interest-async)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPyCon[39m[38;5;12m [39m[38;5;12mBrasil[39m[38;5;12m [39m[38;5;12m2015[39m[38;5;12m [39m[38;5;12mkeynote[39m[38;5;12m [39m
|
||
[38;5;12m(David[39m[38;5;12m [39m[38;5;12mBeazley).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPython Asynchronous I/O Walkthrough[0m[38;5;12m (https://www.youtube.com/playlist?list=PLpEcQSRWP2IjVRlTUptdD05kG-UkJynQT) - 8-part code walkthrough (Philip Guo).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAsync/await in Python 3.5 and why it is awesome[0m[38;5;12m (https://www.youtube.com/watch?v=m28fiN9y_r8&t=132s) - EuroPython 2016 (Yury Selivanov).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFear[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mAwaiting[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mAsync:[0m[38;5;14m[1m [0m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mSavage[0m[38;5;14m[1m [0m[38;5;14m[1mJourney[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mHeart[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mCoroutine[0m[38;5;14m[1m [0m[38;5;14m[1mDream[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=E-1Y4kSsAFc)[39m[38;5;12m [39m[38;5;12m|[39m[38;5;12m [39m[38;5;14m[1mscreencast[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=Bm96RqNGbGo)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPyOhio[39m[38;5;12m [39m[38;5;12m2016[39m[38;5;12m [39m[38;5;12mkeynote[39m[38;5;12m [39m
|
||
[38;5;12m(David[39m[38;5;12m [39m[38;5;12mBeazley).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAsynchronous[0m[38;5;14m[1m [0m[38;5;14m[1mPython[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mComplete[0m[38;5;14m[1m [0m[38;5;14m[1mBeginner[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=iG6fr81xHKA)[39m[38;5;12m [39m[38;5;12m|[39m[38;5;12m [39m[38;5;14m[1mslides[0m[38;5;12m [39m[38;5;12m(https://speakerdeck.com/pycon2017/miguel-grinberg-asynchronous-python-for-the-complete-beginner)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPyCon[39m[38;5;12m [39m
|
||
[38;5;12m2017[39m[38;5;12m [39m[38;5;12m(Miguel[39m[38;5;12m [39m[38;5;12mGrinberg).[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDemystifying Python's Async and Await Keywords[0m[38;5;12m (https://www.youtube.com/watch?v=F19R_M4Nay4) - JetBrains TV 2020 (Michael Kennedy)[39m
|
||
|
||
[38;2;255;187;0m[4mAlternatives to asyncio[0m
|
||
|
||
[48;2;30;30;40m[38;5;13m[3mAlternative approaches to async programming in Python, some of which attempt to support some compatibility with [0m[48;5;235m[38;5;249m[3masyncio[0m[48;2;30;30;40m[38;5;13m[3m, others are not compatible at all.[0m
|
||
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcurio[0m[38;5;12m (https://github.com/dabeaz/curio) - The coroutine concurrency library.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCurio-Asyncio Bridge[0m[38;5;12m (https://github.com/dabeaz/curio/issues/190) - basic curio -> asyncio coroutine bridge.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtrio[0m[38;5;12m (https://github.com/python-trio/trio) - Pythonic async I/O for humans and snake people.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtrio-asyncio[0m[38;5;12m (https://github.com/python-trio/trio-asyncio) - re-implementation of the asyncio mainloop on top of Trio.[39m
|
||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAnyIO[0m[38;5;12m (https://github.com/agronholm/anyio) - High level asynchronous concurrency and networking framework that works on top of either trio or asyncio.[39m
|