Giter Club home page Giter Club logo

awesome-asyncio-cn's Introduction

Awesome

Awesome-Asyncio-CN

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

awesome-list contributions-welcome

Awesome-asyncioTimo 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 应用的库

  • 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 工具箱。
  • uvicorn - 轻量级的,快速的 ASGI 服务器。

消息队列

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

  • 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。
  • aiocache - 支持多个后端 (Memory、Redis 和 Memcached) 的 Asyncio 缓存管理器。
  • aiomcache - 访问 Memcached 的 Asyncio(PEP 3156) 驱动库。

网络

网络通讯库

  • AsyncSSH - 提供执行 SSHv2 协议的异步客户端/服务端。
  • asks - 与 requests 接口相似的异步 HTTP 库。
  • aioftp - 基于 Asyncio 的 ftp 服务。
  • aiodns - 简单的 Asyncio DNS 服务解析器。
  • websockets 构建于 Asyncio 之上的异步 websockets 库。

爬虫

应用于网络爬虫的库

  • gain - 基于 Asycnio 的网络爬虫框架。
  • aspider - 基于 Asyncio 和 aiohttp 的网络爬虫框架。
  • Scrapy - 一个为了爬取网站数据,提取结构性数据而编写的应用框架。

测试

测试 Asyncio 应用程序的库

  • aiomock - 支持异步的 Python mock 库。
  • asynctest - 一个增强标准 unittest 包的测试库。
  • pytest-asyncio - 支持 Asyncio 的 Pytest 库。
  • aioresponses - 一个适用于 aiohttp 的模拟请求库。

备选事件循环

备选的 Asyncio 循环库

  • uvloop - 基于 libuv 实现的 Asyncio 事件循环库。
  • curio - 协程并发库。
  • trio - 人性化的,Pythonic 的异步 IO 库。

并行

并行异步编程的库

  • aioprocessing - 结合 multiprocessing 与 Asyncio 的进程库,支持 Python3.4+。
  • aiomultiprocess - 进一步提升异步性能的多进程库。
  • asynq - Quora 出品的 Python 异步编程库。

其他

未归类的优秀 Asnycio 库

  • aiofiles - 基于 Asyncio,支持文件异步操作。
  • aiodebug - 用于监控和测试 Asyncio 程序的微型库。
  • aiorun - 提供处理通用 Asyncio 样板,启动和关闭事件驱动的 run 函数。
  • aiozipkin - 使用 zipkin 的分布式 Asyncio 追踪测量仪。
  • faust - 纯 Python 的流处理库,用于处理流数据和事件。
  • paco - 协程驱动的异步编程的工具库 (Python3.4+)。
  • aiortc - 使用 Python asyncio 实现的 WebRTC 和 ORTC。
  • aiotools - 通用的 Asyncio 工具集。

文献

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

演讲

关于 Asyncio 的主题演讲

awesome-asyncio-cn's People

Contributors

chenjiandongx avatar sunhailin-leo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.