twisted

Event-driven networking engine written in Python.

https://github.com/twisted/twisted

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    8 of 284 committers (2.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary

Keywords

async async-python dns event-driven http imap irc network python smtp ssl tls twisted xmpp

Keywords from Contributors

requests humans python-requests forhumans cookies fuzzing unit-testing closember asyncio templates
Last synced: 6 months ago · JSON representation

Repository

Event-driven networking engine written in Python.

Basic Info
  • Host: GitHub
  • Owner: twisted
  • License: other
  • Language: Python
  • Default Branch: trunk
  • Homepage: https://twisted.org
  • Size: 74 MB
Statistics
  • Stars: 5,850
  • Watchers: 176
  • Forks: 1,199
  • Open Issues: 2,783
  • Releases: 40
Topics
async async-python dns event-driven http imap irc network python smtp ssl tls twisted xmpp
Created over 14 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Security

README.rst

Twisted
#######

|gitter|_
|rtd|_
|pypi|_
|ci|_

For information on changes in this release, see the `NEWS `_ file.


Sponsors
--------

Twisted is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and these awesome sponsors.
If you'd like to join them, please consider `sponsoring Twisted's `_ development.

|thinkst|_

|sftpplus|_


What is this?
-------------

Twisted is a Python event-based framework for internet applications.
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 `_.


Documentation and Support
-------------------------

Twisted's documentation is available from the `Twisted Matrix Read The Docs website `_.
This documentation contains how-tos, code examples, and an API reference.

Help is also available on the `Twisted mailing list `_.

There is also an IRC channel, ``#twisted``,
on the `Libera.Chat `_ network.
A web client is available at `web.libera.chat `_.


Unit Tests
----------

Twisted has a comprehensive test suite, which can be run by ``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


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

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

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.


Static Code Checkers
--------------------

You can ensure that code complies to Twisted `coding standards `_::

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

Or, for speed, use pre-commit directly::

  $ pipx run pre-commit run


Copyright
---------

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

Twisted is made available under the MIT license.
The included `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 `_ file for specific legal details.


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

.. |gitter| image:: https://img.shields.io/gitter/room/twisted/twisted.svg
.. _gitter: https://gitter.im/twisted/twisted

.. |ci| image:: https://github.com/twisted/twisted/actions/workflows/test.yaml/badge.svg
.. _ci: https://github.com/twisted/twisted

.. |rtd| image:: https://readthedocs.org/projects/twisted/badge/?version=latest&style=flat
.. _rtd: https://docs.twistedmatrix.com

.. |thinkst| image:: https://github.com/user-attachments/assets/a5b52432-2d18-4d91-a3c9-772fb2e02781
    :alt: Thinkst Canary
.. _thinkst: https://thinkst.com/

.. |sftpplus| image:: https://github.com/user-attachments/assets/5f585316-c7e8-4ef1-8fbb-923f0756ceed
    :alt: SFTPPlus
.. _sftpplus: https://www.sftpplus.com/

Owner

  • Name: Twisted Matrix Labs
  • Login: twisted
  • Kind: organization

GitHub Events

Total
  • Create event: 31
  • Commit comment event: 2
  • Release event: 7
  • Issues event: 144
  • Watch event: 258
  • Delete event: 24
  • Issue comment event: 612
  • Push event: 244
  • Pull request review event: 386
  • Pull request review comment event: 413
  • Pull request event: 127
  • Fork event: 35
Last Year
  • Create event: 31
  • Commit comment event: 2
  • Release event: 7
  • Issues event: 144
  • Watch event: 258
  • Delete event: 24
  • Issue comment event: 612
  • Push event: 244
  • Pull request review event: 386
  • Pull request review comment event: 413
  • Pull request event: 127
  • Fork event: 35

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 27,294
  • Total Committers: 284
  • Avg Commits per committer: 96.106
  • Development Distribution Score (DDS): 0.861
Past Year
  • Commits: 730
  • Committers: 28
  • Avg Commits per committer: 26.071
  • Development Distribution Score (DDS): 0.64
Top Committers
Name Email Commits
exarkun e****n@b****b 3,798
glyph g****h@b****b 2,265
itamarst i****t@b****b 2,164
Craig Rodrigues r****c@F****g 1,871
moshez m****z@b****b 1,726
radix r****x@b****b 1,132
Amber Brown (HawkOwl) h****l@a****t 1,066
Adi Roiban a****n@c****m 1,030
spiv s****v@b****b 746
z3p z****p@b****b 569
Thomas Grainger t****n@g****m 531
warner w****r@b****b 529
jml j****l@b****b 490
Tom Most t****m@f****t 454
Mark Williams m****s@g****m 399
carmstro c****o@b****b 382
Wilfredo Sánchez w****z@w****t 375
dp dp@b****b 352
therve t****e@b****b 336
acapnotic a****c@b****b 331
Cory Benfield l****z@g****m 290
slyphon s****n@b****b 285
Itamar Turner-Trauring i****r@p****m 280
foom f****m@b****b 274
pahan p****n@b****b 271
Maarten ter Huurne m****n@b****m 268
moonfallen m****n@b****b 264
wsanchez w****z@b****b 212
Kyle Altendorf k****f@e****m 207
cce c****e@b****b 201
and 254 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 518
  • Total pull requests: 521
  • Average time to close issues: about 2 years
  • Average time to close pull requests: 6 months
  • Total issue authors: 126
  • Total pull request authors: 100
  • Average comments per issue: 3.19
  • Average comments per pull request: 4.09
  • Merged pull requests: 326
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 103
  • Pull requests: 141
  • Average time to close issues: 4 days
  • Average time to close pull requests: 7 days
  • Issue authors: 39
  • Pull request authors: 30
  • Average comments per issue: 1.24
  • Average comments per pull request: 4.0
  • Merged pull requests: 87
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • twisted-trac (118)
  • adiroiban (59)
  • glyph (55)
  • itamarst (48)
  • graingert (32)
  • twm (19)
  • p12tic (18)
  • gudnimg (8)
  • befeleme (7)
  • simonepelosi (4)
  • KaviHarjani (4)
  • kenballus (4)
  • wRAR (4)
  • SivaKesava1 (4)
  • exarkun (4)
Pull Request Authors
  • glyph (83)
  • adiroiban (65)
  • itamarst (63)
  • p12tic (43)
  • graingert (38)
  • twm (29)
  • eevelweezel (13)
  • altendky (13)
  • gudnimg (12)
  • simonepelosi (6)
  • cjwatson (5)
  • allrob23 (5)
  • juanpeha (4)
  • hawkowl (4)
  • TFarrell89 (3)
Top Labels
Issue Labels
bug (234) new (108) priority-normal (107) core (67) enhancement (65) web (42) documentation (27) flaky-test (9) conch (9) task (7) release-blocker (6) trial (6) security (5) priority-low (5) tls (4) names (4) assigned (4) priority-high (3) ssh (3) httpclient (3) words (3) website (2) windows (2) win32 (2) performance (2) agent (2) fixed (2) mail (2) reopened (2) ftp (2)
Pull Request Labels
needs-merge (278) needs-review (64) needs-changes (37) release-blocker (7)

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 7,724,924 last-month
  • Total docker downloads: 58,079,958
  • Total dependent packages: 193
    (may contain duplicates)
  • Total dependent repositories: 8,651
    (may contain duplicates)
  • Total versions: 140
  • Total maintainers: 6
  • Total advisories: 15
pypi.org: twisted

An asynchronous networking framework written in Python

  • Versions: 109
  • Dependent Packages: 163
  • Dependent Repositories: 8,515
  • Downloads: 7,710,065 Last month
  • Docker Downloads: 58,079,958
Rankings
Dependent repos count: 0.1%
Dependent packages count: 0.1%
Downloads: 0.2%
Stargazers count: 0.4%
Average: 0.5%
Docker downloads count: 1.0%
Forks count: 1.2%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: twisted

Twisted is an event-driven networking engine written in Python. It runs on Python 2 and an ever growing subset also works with Python 3.

  • Versions: 14
  • Dependent Packages: 27
  • Dependent Repositories: 67
Rankings
Dependent packages count: 2.5%
Average: 4.0%
Dependent repos count: 4.2%
Forks count: 4.5%
Stargazers count: 4.9%
Last synced: 6 months ago
pypi.org: twisted-binary

(Non Official) Binary Build for Twisted-An asynchronous networking framework written in Python

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 25 Last month
Rankings
Stargazers count: 0.4%
Forks count: 1.2%
Dependent packages count: 7.4%
Average: 13.6%
Dependent repos count: 22.2%
Downloads: 36.5%
Maintainers (1)
Last synced: 6 months ago
anaconda.org: twisted

Twisted is an event-based framework for internet applications, written in Python.

  • Versions: 14
  • Dependent Packages: 2
  • Dependent Repositories: 67
Rankings
Forks count: 10.7%
Stargazers count: 11.6%
Average: 16.4%
Dependent packages count: 21.6%
Dependent repos count: 21.9%
Last synced: 6 months ago
pypi.org: nulink-twisted

An asynchronous networking framework written in Python

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 19 Last month
Rankings
Stargazers count: 0.4%
Forks count: 1.2%
Dependent packages count: 7.4%
Average: 16.5%
Dependent repos count: 22.2%
Downloads: 51.3%
Maintainers (1)
Last synced: 6 months ago
pypi.org: localstack-twisted

An asynchronous networking framework written in Python

  • Versions: 1
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 14,815 Last month
Rankings
Stargazers count: 0.8%
Forks count: 1.6%
Dependent packages count: 9.7%
Average: 19.1%
Dependent repos count: 64.3%
Maintainers (3)
Last synced: 6 months ago

Dependencies

.github/workflows/test.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • mxschmitt/action-tmate v3 composite
  • pypa/gh-action-pypi-publish v1.5.1 composite
  • twisted/python-info-action v1 composite
docs/core/examples/threadedselect/Cocoa/SimpleWebClient/setup.py pypi
pyproject.toml pypi