AnyIO

Build Status Code Coverage Documentation Gitter chat

AnyIO 是一个异步网络和并发库,基于 asynciotrio 之上构建。它在 asyncio 上实现了类似 trio 的 结构化并发 (SC),并与 trio 本身的原生 SC 和谐工作。

针对 AnyIO API 编写的应用程序和库可以在 asynciotrio 上无修改地运行。AnyIO 还可以逐步地集成到库或应用程序中 —— 一点一点地进行,不需要完全重构。它能够与你选择的后端的原生库无缝融合。

文档

查看完整文档: https://hellowac.githu.io/anyio-zh-cn/

功能

AnyIO 提供以下功能:

  • 任务组(trio 术语中的 nurseries

  • 高级网络功能(TCP、UDP 和 UNIX 套接字)

    • TCP 连接的 Happy eyeballs 算法(比 Python 3.8 中 asyncio 的更健壮)

    • 异步/等待风格的 UDP 套接字(与 asyncio 不同,后者仍需要使用传输层和协议)

  • 用于字节流和对象流的多功能 API

  • 任务间同步与通信(锁、条件、事件、信号量、对象流)

  • 工作线程

  • 子进程

  • 异步文件 I/O(使用工作线程)

  • 信号处理

AnyIO 还自带了 pytest 插件,支持异步固定装置(fixtures)。 它甚至与流行的 Hypothesis 库兼容。

手册

The manual