跳转到主要内容

用Python编写的异步网络框架

项目描述

gitter rtd pypi ci

有关本次发布变更的信息,请参阅NEWS文件。

这是什么?

Twisted是一个基于事件的互联网应用程序框架,支持Python 3.6+。它包括许多不同目的的模块,包括以下内容

  • twisted.web:HTTP客户端和服务器,HTML模板,以及WSGI服务器

  • twisted.conch:SSHv2和Telnet客户端和服务器以及终端模拟器

  • twisted.words:IRC,XMPP和其他即时消息协议的客户端和服务器

  • twisted.mail:IMAPv4,POP3,SMTP客户端和服务器

  • twisted.positioning:与NMEA兼容的GPS接收器通信的工具

  • twisted.names:DNS客户端和制作自己的DNS服务器的工具

  • twisted.trial:一个与基于Twisted的代码很好地集成的单元测试框架。

Twisted支持所有主要的系统事件循环 - select(所有平台),poll(大多数POSIX平台),epoll(Linux),kqueue(FreeBSD,macOS),IOCP(Windows),以及各种GUI事件循环(GTK+2/3,Qt,wxWidgets)。第三方反应器可以插入Twisted,并提供对其他事件循环的支持。

安装

使用pip安装Twisted的最新版本

$ pip install twisted

有关安装此软件的附加说明请参阅安装说明

文档和支持

Twisted的文档可在Twisted Matrix网站上找到。此文档包含如何操作、代码示例和API参考。

您还可以在Twisted邮件列表上获得帮助。

Libera.Chat网络上还有一个Libera.Chat网络上的#twisted IRC频道。Web客户端可在web.libera.chat上找到。

单元测试

Twisted有一个全面的测试套件,可以通过tox运行

$ tox -l                       # to view all test environments
$ tox -e nocov                 # to run all the tests without coverage
$ tox -e withcov               # to run all the tests with coverage
$ tox -e alldeps-withcov-posix # install all dependencies, run tests with coverage on POSIX platform

您可以使用TWISTED_REACTOR环境变量在不同的反应器下运行测试套件进行测试

$ env TWISTED_REACTOR=epoll tox -e alldeps-withcov-posix

如果您

  • 未安装特定子系统的依赖项,

  • 有防火墙阻止一些端口(或类似Linux NAT所做的多播),或

  • 以root身份运行它们,

则其中一些测试可能会失败。

您可以使用静态代码检查器确保代码符合Twisted 编码标准

$ tox -e lint   # run pre-commit to check coding stanards
$ tox -e mypy   # run MyPy static type checker to check for type errors

或者,为了提高速度,可以直接使用pre-commit

$ pipx run pre-commit run

保修

本软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性和适用于特定目的的暗示保证。使用本软件的风险完全由您承担。

在任何情况下,版权所有者或可能修改和/或重新分发库的任何其他方,均不对您因使用本软件而造成的任何损害承担责任,即使此类所有者或其他方已被告知此类损害的可能性。

请再次参阅包含的LICENSE文件以获取具体的法律细节。

由...支持