Twisted

以Python编写的事件驱动的网络引擎。(Event-driven networking engine written in Python. )

Github星跟踪图

Twisted是基于事件的互联网应用框架,支持Python 2.7和Python 3.3+。 它包括许多不同用途的模块,其中包括:

  • twisted.web:HTTP客户端和服务器,HTML模板和WSGI服务器
  • twisted.conch:SSHv2和Telnet客户端和服务器和终端仿真器
  • twisted.words:用于IRC,XMPP和其他IM协议的客户端和服务器
  • twisted.mail:IMAPv4,POP3,SMTP客户端和服务器
  • twisted.positioning:与NMEA兼容的GPS接收机进行通信的工具
  • twisted.names:用于制作自己的DNS服务器的DNS客户端和工具
  • twisted.trial:与Twisted代码集成的单元测试框架。

Twisted支持所有主要系统事件循环 - 选择(所有平台),轮询(大多数POSIX平台),epoll(Linux),kqueue(FreeBSD,OS X),IOCP(Windows)和各种GUI事件循环(GTK+ 2/3,QT,wxWidgets)。 第三方反应器可以插入Twisted,并为其他事件循环提供支持。

Twisted运行于Python 2,其一个不断增长的子集也适用于Python 3。

Twisted 还支持许多常见的网络协议,如SMTP、POP3、IMAP、sshv2,和DNS。

主要指标

概览
名称与所有者twisted/twisted
主编程语言Python
编程语言Python (语言数: 7)
平台
许可证Other
所有者活动
创建于2011-07-01 20:40:42
推送于2025-04-17 23:28:54
最后一次提交
发布数88
最新版本名称twisted-24.11.0 (发布于 )
第一版名称twisted-8.0.0 (发布于 )
用户参与
星数5.7k
关注者数175
派生数1.2k
提交数30.9k
已启用问题?
问题数10317
打开的问题数2660
拉请求数1523
打开的拉请求数112
关闭的拉请求数484
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

Twisted
=======, pypi, _, coverage, _, travis, _, appveyor, _, circleci, _

For information on what's new in Twisted 19.2.0, see the NEWS <NEWS.rst>_ file that comes with the distribution.

What is this?

Twisted is an event-based framework for internet applications, supporting Python 2.7 and Python 3.5+.
It includes modules for many different purposes, including the following:

  • twisted.web: HTTP clients and servers, HTML templating, and a WSGI server
  • twisted.conch: SSHv2 and Telnet clients and servers and terminal emulators
  • twisted.words: Clients and servers for IRC, XMPP, and other IM protocols
  • twisted.mail: IMAPv4, POP3, SMTP clients and servers
  • twisted.positioning: Tools for communicating with NMEA-compatible GPS receivers
  • twisted.names: DNS client and tools for making your own DNS servers
  • twisted.trial: A unit testing framework that integrates well with Twisted-based code.

Twisted supports all major system event loops -- select (all platforms), poll (most POSIX platforms), epoll (Linux), kqueue (FreeBSD, macOS), IOCP (Windows), and various GUI event loops (GTK+2/3, Qt, wxWidgets).
Third-party reactors can plug into Twisted, and provide support for additional event loops.

Installing

To install the latest version of Twisted using pip::

$ pip install twisted

Additional instructions for installing this software are in the installation instructions <INSTALL.rst>_.

Documentation and Support

Twisted's documentation is available from the Twisted Matrix website <http://twistedmatrix.com/documents/current/>_.
This documentation contains how-tos, code examples, and an API reference.

Help is also available on the Twisted mailing list <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>_.

There is also a pair of very lively IRC channels, #twisted (for general Twisted questions) and #twisted.web (for Twisted Web), on chat.freenode.net.

Unit Tests

Twisted has a comprehensive test suite, which can be run by tox::

$ tox -l # to view all test environments
$ tox -e py27-tests # to run the tests for Python 2.7
$ tox -e py35-tests # to run the tests for Python 3.5

You can test running the test suite under the different reactors with the TWISTED_REACTOR environment variable::

$ env TWISTED_REACTOR=epoll tox -e py27-tests

Some of these tests may fail if you:

  • don't have the dependencies required for a particular subsystem installed,
  • have a firewall blocking some ports (or things like Multicast, which Linux NAT has shown itself to do), or
  • run them as root.

All of the code in this distribution is Copyright (c) 2001-2019 Twisted Matrix Laboratories.

Twisted is made available under the MIT license.
The included LICENSE <LICENSE>_ file describes this in detail.

Warranty

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE USE OF THIS SOFTWARE IS WITH YOU.

IN NO EVENT WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY, BE LIABLE TO YOU FOR ANY DAMAGES, EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

Again, see the included LICENSE <LICENSE>_ file for specific legal details.

.., coverage, image:: https://codecov.io/github/twisted/twisted/coverage.svg?branch=trunk
.. _coverage: https://codecov.io/github/twisted/twisted

.., pypi, image:: http://img.shields.io/pypi/v/twisted.svg
.. _pypi: https://pypi.python.org/pypi/twisted

.., travis, image:: https://travis-ci.org/twisted/twisted.svg?branch=trunk
.. _travis: https://travis-ci.org/twisted/twisted

.., appveyor, image:: https://ci.appveyor.com/api/projects/status/x4oyqtl9cqc2i2l8
.. _appveyor: https://ci.appveyor.com/project/adiroiban/twisted

.., circleci, image:: https://circleci.com/gh/twisted/twisted.svg?style=svg
.. _circleci: https://circleci.com/gh/twisted/twisted