AnyIO¶
AnyIO 是一个异步网络和并发库,基于 asyncio 或 trio 之上构建。它在 asyncio 上实现了类似 trio 的 结构化并发 (SC),并与 trio 本身的原生 SC 和谐工作。
针对 AnyIO API 编写的应用程序和库可以在 asyncio 或 trio 上无修改地运行。AnyIO 还可以逐步地集成到库或应用程序中 —— 一点一点地进行,不需要完全重构。它能够与你选择的后端的原生库无缝融合。
文档¶
功能¶
AnyIO 提供以下功能:
任务组(trio 术语中的 nurseries)
高级网络功能(TCP、UDP 和 UNIX 套接字)
TCP 连接的 Happy eyeballs 算法(比 Python 3.8 中 asyncio 的更健壮)
异步/等待风格的 UDP 套接字(与 asyncio 不同,后者仍需要使用传输层和协议)
用于字节流和对象流的多功能 API
任务间同步与通信(锁、条件、事件、信号量、对象流)
工作线程
子进程
异步文件 I/O(使用工作线程)
信号处理
AnyIO 还自带了 pytest 插件,支持异步固定装置(fixtures)。 它甚至与流行的 Hypothesis 库兼容。
手册¶
The manual