高度并发的网络库
项目描述
警告
现在强烈不建议使用 eventlet 的新用法!请阅读以下内容。
Eventlet 诞生于大约 18 年前,当时 CPython stdlib 中还没有异步功能。随着时间的推移,eventlet 和 CPython 都得到了发展,但自从几年前的维护活动减少以来,eventlet 和 CPython 实现之间的差距越来越大。
这个差距现在太大了,可能导致您的应用程序中出现意外的副作用和错误。
Eventlet 现在遵循新的维护策略。**只提供稳定性维护和错误修复**。**不接受新功能**,除非与 asyncio 迁移相关。**不鼓励在新项目中使用**。**我们的目标是规划 eventlet 的退役**,并为您提供摆脱 eventlet 的方法。
如果您正在寻找一个用于管理异步网络编程的库,并且尚未使用 eventlet,那么,我们鼓励您使用 CPython stdlib 的官方异步库 asyncio。
如果您已经使用 eventlet,我们希望为某些用例启用迁移到 asyncio;请参阅 从 Eventlet 迁移。只接受与迁移解决方案相关的新功能。
如果您对维护目标或迁移有任何疑问,请不要犹豫,提出新问题,我们将很乐意回答。
Eventlet
Eventlet 是一个用于 Python 的并发网络库,它允许您更改代码的运行方式,而不是编写方式。
它使用 epoll 或 libevent 进行高度可扩展的非阻塞 I/O。协程确保开发者使用类似于线程的阻塞式编程风格,但提供了非阻塞 I/O 的好处。事件调度是隐式的,这意味着您可以从 Python 解释器或作为更大应用程序的一个小部分轻松使用 Eventlet。
使用 Eventlet 很容易入门,将现有应用程序转换为使用它也很容易。首先查看 示例、常见设计模式 和 基本 API 原语 列表。
获取 Eventlet
获取 Eventlet 最简单的方法是使用 pip
pip install -U eventlet
一次性安装最新开发版本
pip install -U https://github.com/eventlet/eventlet/archive/master.zip
本地构建文档
构建完整的 HTML 文档集
tox -e docs
构建后的 html 文件可以在 doc/build/html 中找到。
支持的 Python 版本
目前支持 Python 3.7-3.12。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。