Python的事件驱动IO简单实现
项目描述
Thor
关于Thor
Thor是另一个Python 3事件驱动IO库。
已经有许多这样的Python库。Thor专注于使构建高性能HTTP代理、负载均衡器、内容转换引擎和服务聚合器变得容易。当然,您也可以将其用作客户端或服务器。
它旨在尽可能快地执行,正确实现协议,并保持简单。您可以通过贡献问题、补丁和测试来帮助实现这些目标。
Thor的EventEmitter API受到了NodeJS的影响^H^H^H复制自NodeJS;如果您熟悉Node,使用Thor应该不会太难。然而,Thor与Twisted完全不同;这被视为一个特性。
目前,Thor具有事件循环以及TCP、UDP和HTTP API(客户端和服务器)。新的API(例如DNS)和功能将很快推出,以及一个中介框架。
要求
Thor只需要Python 3.8或更高版本。
目前,它将在大多数POSIX平台上运行;具体来说,那些提供poll
、epoll
或kqueue
之一的平台。
安装
如果您有setuptools,可以从存储库安装
easy_install thor
或使用pip
pip安装thor
在某些操作系统上,可能需要pip3
。否则,下载tarball并使用以下方法安装
使用python setup.py安装
使用Thor
文档([https://github.com/mnot/thor/tree/master/doc](https://github.com/mnot/thor/tree/master/doc))是一个很好的起点;还可以查看各个模块的docstrings以及测试,以了解如何使用Thor。
例如,一个非常简单的HTTP服务器如下所示
import thor, thor.http
def test_handler(exch):
@thor.events.on(exch)
def request_start(*args):
exch.response_start(200, "OK", [('Content-Type', 'text/plain')])
exch.response_body('Hello, world!')
exch.response_done([])
if __name__ == "__main__":
demo_server = thor.http.HttpServer('127.0.0.1', 8000)
demo_server.on('exchange', test_handler)
thor.run()
支持和贡献
请访问[Thor的GitHub](http://github.com/mnot/thor/)以提供反馈、查看和[报告问题](https://github.com/mnot/thor/issues),以及贡献代码。
欢迎所有有帮助的输入,特别是通过pull request(附带测试用例)进行的代码贡献。
为什么选择Thor?
Thor不仅是“与雷、闪电、风暴、橡树、力量、破坏、肥沃、治愈以及人类保护有关的神”,他还是我的挪威森林猫。
(软件程序)Thor是从nbhttp演变而来的,而nbhttp本身又是基于在[redbot](http://redbot.org/)上对事件驱动Python的早期工作。
(猫)Thor现在以坚定而仁慈的爪子统治着我们的家。不过,如果我们给他任何牛奶,他会生病的。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于[安装包](https://packaging.pythonlang.cn/tutorials/installing-packages/)的信息。
源代码分发
构建分发
thor-0.11.11.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3cdea31088406bd66832980573c90283660b1aa851098e70eea6acf08f1d7209 |
|
MD5 | 787d69700ccb349d2e996e07f48ee17e |
|
BLAKE2b-256 | 2ff3acc751f0adf6114f2d01a1a08e867b203e6ef525353ed6f22c420316775e |