查看原文
其他

【翻译】Awesome Asyncio 中文版

陈键冬 Python爱好者社区 2019-04-07

译者:  陈键冬     一个有趣的灵魂
github:https://github.com/chenjiandongx
校译:呆鸟
原文地址:https://github.com/timofurrer/awesome-asyncio


注:文中资源链接不能加超链接,请点击阅读原文进作者github查看~


Python Asyncio 精选资源列表,囊括了网络框架,库,软件等资源。


Awesome-asyncio是 Timo Furrer 发起并维护的 Python Asyncio 资源列表。本项目是其中文版,在这里,收集了大量的 Asyncio 的最棒、最新的资源,供大家探索 Python 异步编程世界。


Python 3.4 引入了 Asyncio 模块作为标准库,通过协程、多路 I/O 访问 Socket 和其他资源来编写单线程并发代码,并在网络客户端与服务器上运行。Asyncio 内置了对异步 I/O 的支持,其编程模型类似于消息循环,从 Asyncio 模块可以直接获取 EventLoop 引用,再把需要执行的协程放到 EventLoop 中执行,就实现了异步 I/O。Asyncio 是由 Python 之父 Guido 领导的项目,该项目被命名为 Tulip(郁金香)。


Asyncio 并不是新出现的黑科技,一些社区有名的第三库如 Twisted、gevent 早就推出了异步编程模型。不过,自从 2016 年 3 月,Python 3.4 推出以后,这两年来,Asyncio 变得越来越流行,并且特别受到 Python 社区追捧。


贡献代码


欢迎大家为列表贡献高质量的新资源,提交 PR 时请参照以下要求


  • 注明推荐理由

  • 确保项目相对活跃


目录


  • Web 框架

  • 消息队列

  • 数据库驱动

  • 网络

  • 测试

  • 备选事件循环

  • 其他

  • 文献

  • 演讲


Web框架


构建 Web 应用的库


  • aiohttp - 支持 Asyncio (PEP-3156) 的 HTTP 客户端/服务端网络库。

  • sanic - Python 3.5+ Web 服务器,主打速度与性能。

  • Quart - 支持 Asyncio 的 Web 微框架,使用与 Flask 相同的 API。

  • Kyoukai - 使用 Asyncio 编写的 Python3.5+ 完全异步 Web 框架。

  • cirrina - 基于 aiohttp 的异步 Web 框架。

  • autobahn - 支持 Asyncio 与 Twisted 的 WebSocket 及 WAMP,用于客户端与服务端。

  • websockets - Python 构建的 WebSocket 客户端/服务端的库,致力于简洁、正确地编写代码。

  • Tornado - 高性能 Web 框架以及异步网络库。

  • Japronto! - 基于 uvloop 和 picohttpparse 构建的实验性 HTTP 工具箱。


消息队列


使用消息队列执行应用的库


  • aioamqp - 使用 Asyncio 异步执行 AMQP。

  • aiozmq - 集成了 Asyncio (pep 3156) 的 ZeroMQ。

  • crossbar - Crossbar.io 是提供分布式和微服务应用的网络平台。


数据库驱动


数据库的驱动库


  • asyncpg - 快速访问 PostgreSQL 数据库客户端的异步驱动。

  • asyncpgsa - 提供 Sqlalchemy Core 支持的 Asyncpg。

  • aiopg - 访问 PostgreSQL 数据库的异步驱动。

  • aiomysql - 访问 MySQL 数据库的异步驱动。

  • aioodbc - 访问 ODBC 数据库的异步驱动。

  • motor - 访问 MongoDB 数据库的异步驱动。

  • aioredis - aio-libs 提供的异步 Redis 客户端 (PEP 3156)。

  • asyncio-redis - 访问 Redis 客户端 (PEP 3156)的异步驱动。

  • aiocouchdb - 基于 aiohttp (Asyncio) 构建的 CouchDB 客户端。

  • aioinflux - 基于 aiohttp 构建的 InfluxDB 客户端。

  • aioes - 兼容 elasticsearch 的 Asyncio 驱动。

  • peewee-async - 基于 peewee 和 aiopg 实现的 ORM。

  • GINO - 基于 SQLAlchemy Core 和 asyncpg 方言的轻量级 Python 异步 ORM。


网络


网络通讯库


  • AsyncSSH - 提供执行 SSHv2 协议的异步客户端/服务端。

  • asks - Asyncio 界的 requests

  • aioftp - 基于 Asyncio 的 ftp 服务。

  • aiodns - 简单的 Asyncio DNS 服务解析器。


测试


测试 Asyncio 应用程序的库


  • aiomock - 支持异步的 Python mock 库。

  • asynctest - 一个增强标准 unittest 包的测试库。

  • pytest-asyncio - 支持 Asyncio 的 Pytest 库。


备选事件循环


备选的 Asyncio 循环库


  • uvloop - 基于 libuv 实现的 Asyncio 事件循环库。

  • curio - 协程并发库。

  • trio - 人性化的,Pythonic 的异步 IO 库。


其他


暂未归类的超赞 Asnycio 库


  • aiofiles - 基于 Asyncio,支持文件异步操作。

  • aiodebug - 用于监控和测试 Asyncio 程序的微型库。

  • aiorun - 提供处理通用 Asyncio 样板,启动和关闭事件驱动的 run 函数。

  • aiozipkin - 使用 zipkin 的分布式 Asyncio 追踪测量仪。

  • faust - 纯 Python 的流处理库,用于处理流数据和事件。


文献


关于 Asyncio 的文档、博客等文献


  • Asyncio 官方文档 - 介绍了异步 I/O、事件循环、协程及任务等内容。

  • Asyncio 精编简介 - 生成器,协程,原生协程及 async/await。

  • 异步窥探 - 非常好的一篇文章,列出了哪些用例应该使用 Asyncio ,哪些用例无需使用 Asyncio。

  • 异步 Python - 介绍如何进行 Python 异步编程。

  • 用 Asyncio 进行 Python 开发 - 介绍异步编程的开发,从简单示例说起,一直到 URL 爬取。

  • Python Aiohttp 的测试极限 - 使用 Python Aiohttp 进行百万量级的并发测试。


演讲


关于 Asyncio 的主题演讲


  • Topics of Interest (Python Asyncio) - David Beazley 的主题演讲。

  • Python Asynchronous I/O Walkthrough - Philip Guo 的主题演讲。

  • Thinking Outside the GIL with AsyncIO and Multiprocessing - John Reese 的主题演讲

  • Asynchronous Python for the Complete Beginner - Miguel Grinberg 的主题演讲

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

小编的Python入门免费视频课程!!!

【最新免费微课】小编的Python快速上手matplotlib可视化库!!!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存