• Stars
    star
    594
  • Rank 75,329 (Top 2 %)
  • Language Makefile
  • License
    Other
  • Created over 6 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

mzitu

👧 美女写真套图爬虫(二)
Python
1,041
star
2

magnet-dht

✌️ Python3 BitTorrent DHT crawler
Python
935
star
3

sniffer

🤒 A modern alternative network traffic sniffer.
Go
703
star
4

mandodb

🤔 A minimize Time Series Database, written from scratch as a learning project. 从零开始实现一个 TSDB
Go
645
star
5

torrent-cli

🔨 磁力获取器命令行工具
Python
640
star
6

bili-spider

📺 B 站全站视频信息爬虫
Python
581
star
7

cup-size

👀 关于女性文胸尺码的深入探讨
Python
553
star
8

mmjpg

👩 美女写真套图爬虫(一)
Python
479
star
9

51job-spider

🔎 前程无忧 Python 招聘岗位信息爬取和分析
Python
396
star
10

async-proxy-pool

🔅 Python3 异步爬虫代理池
Python
371
star
11

Github-spider

Github 仓库及用户分析爬虫
Python
251
star
12

kubectl-images

🕸 Show container images used in the cluster.
Go
237
star
13

stackoverflow-spider

📖 爬取 Stackoverflow 100万 条问答并简单分析
Python
206
star
14

pixiv

P 站非会员查看人气作品
Python
185
star
15

soksaccounts

🔥 Shadowsocks 账号爬虫
Python
157
star
16

ginprom

📡 Prometheus metrics exporter for Gin.
Go
151
star
17

how

📝 Impressive Linux commands cheat sheet (Python).
Python
124
star
18

gitv

🤟 A git repos analyzing and visualizing tool built in Rust. 我的开源报告
Rust
123
star
19

yummy-girls

🚜 无他,唯手熟尔
JavaScript
79
star
20

pls

✏️ Impressive Linux commands cheat sheet CLI written in Go.
Go
78
star
21

weekly-email-subscribe

阮一峰技术周刊邮件订阅
Python
76
star
22

prometheus101

📘 Prometheus 折腾笔记
73
star
23

clock

☁️ 须知少时凌云志 曾许人间第一流
Go
72
star
24

HupuLive

🏀 虎扑篮球直播命令行版
Python
70
star
25

oscar

🐶 Next generation building tool for nothing
Go
67
star
26

jianweibo

基于 Python Flask 的微博系统
Python
62
star
27

grogudb

🐸 Grogudb is a KV Database designed for fast write/scan heavy workloads.
Go
58
star
28

pinger

📌 A portable ping library written in Go
Go
57
star
29

yap

🚥 Yet another pinger: A high-performance ICMP ping implementation build on top of BPF technology.
Go
53
star
30

bili-video-rank

🔦 B 站视频各项数据排行榜
JavaScript
42
star
31

fy

🌐 Translate words via command line
Python
37
star
32

photo-gevent

👮 美女写真图爬虫 gevent 版
Python
36
star
33

kubectl-count

🎊 Count resources by kind
Go
36
star
34

Qt

Qt 小项目
C++
32
star
35

wallpaper

zol 手机壁纸爬虫(简单分布式?)
Python
27
star
36

collections

📂 Golang 实现的 collections 模块,灵感来自 Python queue 和 Python collections
Go
27
star
37

pytreemap

🌲 树图渲染命令行工具
Python
26
star
38

make-it-colorful

🎨 使用卷积神经网络给图片上色
25
star
39

photo-asyncio

🙉 美女写真图爬虫 asyncio 版
Python
24
star
40

async-bili-spider

📹 B 站异步爬虫初体验
Python
23
star
41

pyocr

利用 tesseract 解析简单数字验证码图片
Python
20
star
42

lolly

🍭 文字动态图生成工具
Python
18
star
43

youdao-go

📘 Golang 有道词典命令行版
Go
18
star
44

aura

🔔 Aura is an SDK for the monitoring system written in Go with love
Go
16
star
45

hupu-referee-report

🏀 虎扑步行街裁判报告
JavaScript
16
star
46

zhihu-zhuanlan

如何分析一个知乎大 V 的专栏文章
Python
15
star
47

photo-go

👼 美女写真图爬虫 Golang 版
Go
15
star
48

pymysql-connection-pool

pymysql 连接池
Python
14
star
49

pyhtime

🕜 一个用来将 datetime 时间转化成更加人性化的 时间描述字符串的库
Python
13
star
50

tszlist

🔗 tszlist 是一种时序数据线程安全链表
Go
11
star
51

emoji.py

🔍 emoji 表情命令行搜索工具
Python
8
star
52

slipper

🍮 Async HTTP Requests-like library based on Aiohttp
Python
7
star
53

photo-trio

👲 美女写真图爬虫 trio 版
Python
7
star
54

skrskr

🤙 当 Python 遇到大碗面 Freestyle 太 Skr 了
Python
6
star
55

mim-system

利用 flask 实现的数据库小作业网站
Python
6
star
56

kslb

🍬 The missing Service Loadbalance for Kubernetes(Just for fun).
Go
6
star
57

wetalk

📠 wetalk is a chatroom application for coders based on websockets
Go
5
star
58

pprofsnapshot

🧶 pprofsnapshot makes it easy to download profiling data to local.
Go
5
star
59

dockerstats

🐳 The easy way to collect docker stats.
Go
4
star
60

gh-contributors

🔖 Github 项目贡献者 Markdown 文档表格生成工具
Python
3
star
61

memcached-collector

📤 Collect metrics from memcached servers using aura.
Go
3
star
62

logger

⚡ A lightweight, auto-rolling logger for Go.
Go
3
star
63

docs-need-space

📗 文档空格检查工具
Python
3
star
64

grogudb-benchmark

grogudb benchmark project
Go
1
star