2022 Python 计算生态十一月推荐榜 第57期

22年11月10日 · Python123 1534 人阅读
![]() |
看见更大的世界,遇见更好的自己
See a better world to meet better for ourselves.
许多程序员都熟悉编写顺序(或同步)代码,即使他们刚刚开始。这是一种一次执行一行,一次执行一条指令的代码。在异步世界中,事件的发生独立于主程序流程。这意味着动作在后台执行,无需等待前一个动作完成。换句话说,代码行是同时执行的。想象一下,你有一些独立的任务,每一个都需要大量的运行时间才能完成。它们的输出不相互依赖。所以,你想一次启动它们。如果这些任务以特定顺序执行,则程序必须等待每个任务完成才能开始下一个任务。这个等待时间阻塞了程序。异步编程范式有助于并发执行这些任务,并确保您可以克服等待时间并更有效地使用资源。Python3.4推出支持异步编程asyncio,它提供了一种执行并发任务的简单方法。
2022年11月,随着支持异步编程的第三方依赖库越来越多,好事者特别推荐10款优秀的Python计算生态,帮助您了解Python的异步编程。
sanic
Sanic 是一个Python 3.7+的Web 服务器和 Web 框架,其编写速度快。它允许使用async/awaitPython 3.5 中添加的语法,从而使您的代码无阻塞且快速。
https://github.com/sanic-org/sanic
aiohttp
aiohttp是一个异步的http框架,你可以把它理解为异步版的requests。异步 http 客户端/服务器框架。支持HTTP协议的客户端和服务器端。开箱即用地支持客户端和服务器 Web-Sockets。为
Web 服务器提供中间件和可插入路由。
https://github.com/aio-libs/aiohttp
aiofiles
aiofiles是一个 Apache2 许可库,用
Python 编写,用于处理异步应用程序中的本地磁盘文件。
https://github.com/Tinche/aiofiles/
websockets
websockets 是一个用于在 Python 中构建WebSocket服务器和客户端的库,专注于正确性、简单性、健壮性和性能。它建立在 Python 的标准异步
I/O 框架之上asyncio,提供了一个优雅的基于协程的 API。
https://github.com/aaugustin/websockets/
starlette
Starlette 是一个轻量级的ASGI框架/工具包,非常适合用 Python 构建异步
Web 服务。
https://github.com/encode/starlette
asyncpg
asyncpg是专为 PostgreSQL 和
Python/asyncio 设计的数据库接口库。asyncpg 是一个高效、干净的
PostgreSQL 服务器二进制协议实现,用于 Pythonasyncio 框架。
https://github.com/MagicStack/asyncpg
aioredis-py
异步Redis 支持,该库旨在为基于 asyncio 的 Redis 提供简单明了的接口。
https://github.com/aio-libs/aioredis-py
gino
GINO ORM是一个轻量级的异步 ORM,构建在 Python asyncio的SQLAlchemy核心之上。GINO 1.1 支持带有asyncpg的PostgreSQL和带有aiomysql的 MySQL 。
https://github.com/python-gino/gino
tortoise-orm
Tortoise ORM 是受 Django 启发的易于使用的asyncioORM。
https://github.com/tortoise/tortoise-orm
Ruia
Ruia 是一个异步网页抓取微框架,用asyncioand编写aiohttp,旨在让抓取 url 尽可能方便。
https://github.com/howie6879/ruia
Python3Turtle