Python 3.4引入标准库的Python asyncio模块提供了使用协程编写单线程并发代码,通过套接字和其他资源对I / O进行多路访问,运行网络客户端和服务器以及其他相关原语的基础结构。
Asyncio并不是真正的崭新技术,但是自几年以来,它似乎一直非常流行,尤其是在Python社区以及2014年3月发布的Python 3.4中。要保持最新非常困难,在这里您可以找到一些很棒的软件包。
Web框架
**用于构建Web应用程序的库。
**
aiohttp-异步的Http客户端/服务器(PEP-3156)。
sanic-编写速度更快的Python 3.5+ Web服务器。
quart-一个ASYNCIO网络microframework用相同的API瓶。
Vibora-受Flask启发的高性能Web框架。
cirrina-有意见的基于aiohttp的异步Web框架。
autobahn-用于客户端和服务器的WebSocket和WAMP支持asyncio和Twisted。
websockets-一个库,用于在Python中构建WebSocket服务器和客户端,重点是正确性和简单性。
Tornado -Performance Web框架和异步网络库。
Japronto!-基于uvloop和picohttpparser构建的实验性HTTP工具包。
Starlette-用于构建高性能服务的轻量级ASGI框架/工具包。
uvicorn-快如闪电的ASGI服务器。
FastAPI-基于类型提示的非常高性能的Python 3.6+ API框架。由Starlette和Pydantic提供支持。
消息队列
**使用消息队列实现应用程序的库。
**
aioamqp-使用asyncio的AMQP实现。
pyzmq -ZeroMQ的Python绑定。
aiozmq-与ZeroMQ的替代性Asyncio集成。
crossbar-Crossbar.io是用于分布式和微服务应用程序的网络平台。
asyncio-nats -NATS邮件系统的客户端。
aiokafka -Apache Kafka的客户端。
数据库驱动程序
**库连接到数据库。
**
asyncpg-适用于Python / asyncio的快速PostgreSQL数据库客户端库。
asyncpgsa-具有sqlalchemy核心支持的Asyncpg。
aiopg-用于访问PostgreSQL数据库的库。
aiomysql-用于访问MySQL数据库的库
aioodbc-用于访问ODBC数据库的库。
motor -MongoDB的异步Python驱动程序。
aioredis - aio-libs Redis客户端(PEP 3156)。
asyncio- redis-用于Python asyncio的Redis客户端(PEP 3156)。
aiocouchdb-基于aiohttp(asyncio)构建的CouchDB客户端。
aioinflux-在aiohttp之上构建的InfluxDB客户端。
aioes-用于Elasticsearch的Asyncio兼容驱动程序。
peewee- async-基于peewee和aiopg的ORM实现。
GINO-是基于SQLAlchemy核心的轻量级异步Python ORM ,带有asyncpg方言。
Tortoise ORM-具有类似Django的API和易于进行的关系管理的本机多后端ORM。
数据库-对SQLAlchemy核心的异步数据库访问,并支持PostgreSQL,MySQL和SQLite。
网络
**在您的网络中进行通信的库。
**
AsyncSSH-提供SSHv2协议的异步客户端和服务器实现。
aiodns-用于asyncio的简单DNS解析器
httpx-具有请求兼容API的Python 3异步HTTP客户端。
GraphQL
**用于构建GraphQL服务器的库。
**
Ariadne -Schema-first Python库,用于实现GraphQL服务器。
Tartiflette-基于Schema的Python 3.6+ GraphQL引擎libgraphqlparser。
测验
**用于测试基于异步应用程序的库。
**
aiomock-一个支持异步方法的python模拟库。
asynctest-使用测试功能增强标准的单元测试软件包。异步库
pytest-asyncio-对异步的Pytest支持。
响应-Asyncio http模拟。类似于用于请求的响应库
aioresponses -Python aiohttp包中的模拟/伪造Web请求的帮助器。
备用循环
**可选的异步循环实现。
**
uvloop-在libuv之上的asyncio事件循环的超快速实现。
杂项
**其他很棒的asyncio库。
**
aiocache-不同后端的缓存管理器。
aiofiles-对asyncio的文件支持。
aiodebug-一个用于监视和测试asyncio程序的小型库。
aiorun -一个run()函数来处理所有常见的样板启动和正常关机。
aioserial - pySerial的直接替代。
aiozipkin -分布式跟踪ASYNCIO与基普金仪器
asgiref-从ASGI到WSGI集成的后端实用程序,包括sync_to_async和async_to_sync函数包装。
ruia-基于asyncio的异步Web抓取微框架。
清单内的所有库模块下载地址已经打包在awesome-asyncio的ZIP包内,用到的小伙伴可以自行寻找。