跳转到主要内容

Python的事件驱动IO简单实现

项目描述

Thor

CI Coverage Status

关于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平台上运行;具体来说,那些提供pollepollkqueue之一的平台。

安装

如果您有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现在以坚定而仁慈的爪子统治着我们的家。不过,如果我们给他任何牛奶,他会生病的。

Thor, the cat

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于[安装包](https://packaging.pythonlang.cn/tutorials/installing-packages/)的信息。

源代码分发

thor-0.11.11.tar.gz (47.2 kB 查看散列值)

上传时间 源代码

构建分发

thor-0.11.11-py3-none-any.whl (56.9 kB 查看散列值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面