【翻译】Awesome Asyncio 中文版

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 本文来自云栖社区官方钉群“Python技术进阶”,了解相关信息可以关注“Python技术进阶”。 Python Asyncio 精选资源列表,囊括了网络框架,库,软件等资源。 Awesome-asyncio是 Timo Furrer 发起并维护的 Python Asyncio 资源列表。

本文来自云栖社区官方钉群“Python技术进阶”,了解相关信息可以关注“Python技术进阶”。


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 的主题演讲


原文发布时间为:2018-08-15

本文作者:陈键冬

本文来自云栖社区官方钉群“ Python技术进阶”,了解相关信息可以关注 Python技术进阶
Python技术进阶交流群

b8b9a7a5741b3f7fc6d1f3bf7f13c9abfe906266


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
12月前
|
Python
BasicGames Python 源码解析 02 Amazing
BasicGames Python 源码解析 02 Amazing
|
测试技术
ABTest 教程 tutorial
ABTest 教程 tutorial
|
编译器 测试技术 Go
Go 语言入门很简单:技巧和窍门 (Tips and Tricks)
本节将随着时间的推移而增长,但主要目标是分享一些有经验的开发人员在一段时间内发现的技巧。希望这些技巧能让新用户更快地提高工作效率。
|
测试技术 Python
书籍:Python Testing Cookbook, 2nd Edition - 2018.pdf python测试cookbook
简介 借助此基于解决方案的指南,修复Python中的日常测试问题 主要特点 使用doctest和unittest等强大的工具来方便测试 将自动化测试应用于非面向测试的现有遗留系统 使用真实示例简化Python测试的实用指南 图书说明 自动化测试是提高效率,同时减少软件测试缺陷的最佳方法。
|
Web App开发 人工智能 Python
[python作业AI毕业设计博客]深入理解Flask 中英文版-英文更新至2018第2版 Mastering Flask Web Development 2nd Edition - 2018.Pdf
深入理解Flask - 2016.pdf Flask 是在Python 用户中最为流行的Web 开发框架。《深入理解 Flask》从一个简单的Flask 项目入手,由浅入深地探讨了一系列实战问题,包括如何使用SQLAlchemy 和Jinja 等工具进行Web 开发;如何正确地设计扩展性强的Fl.
|
Web App开发 消息中间件 测试技术
Awesome Asyncio 《碉堡的Asyncio·中文版》
转一篇关于Asyncio的资源帖。基本涵盖了基于Asyncio的Python生态,非常适合用Python编写高性能服务。可以和之前转的驹神的文章结合看。
2073 0
|
Python 网络架构
Sanic 中文文档翻译完成
拉取了 Sanic 官方文档,用本人拙劣的英文水平加 Google 翻译生成的中文文档,仅供参考。顺便自己也仔细学习了一下。 Sanic 中文文档地址 http://sanic-cn.readthedocs.io/zh/latest/index.html Sanic 中文文档源码 https://github.com/chinesejar/sanic-cn 官方介绍 Sanic 是一款类似 Flask 的 Python 3.5+ Web服务器,它的写入速度非常快。
1701 0
|
Web App开发 数据采集 XML
156个Python网络爬虫资源,GitHub上awesome系列之Python爬虫工具
项目地址:lorien/awesome-web-scraping,GitHub上awesome系列之Python的爬虫工具。本列表包含Python网页抓取和数据处理相关的库。
13200 0
|
Ruby 前端开发