• Stars
    star
    5,430
  • Rank 7,231 (Top 0.2 %)
  • Language
    Python
  • License
    Other
  • Created almost 13 years ago
  • Updated 14 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Event-driven networking engine written in Python.

Twisted

gitter rtd pypi mypy

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

What is this?

Twisted is an event-based framework for internet applications, supporting Python 3.6+. 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 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-2022 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.

More Repositories

1

klein

werkzeug + twisted.web
Python
832
star
2

towncrier

Manage the release notes for your project.
Python
734
star
3

treq

Python requests like API built on top of Twisted's HTTP client.
Python
583
star
4

txmongo

asynchronous python driver for mongo
Python
336
star
5

pydoctor

This is pydoctor, an API documentation generator that works by static analysis.
Python
166
star
6

ldaptor

LDAP server, client and utilities, using Twisted Python
Python
156
star
7

incremental

A library for versioning your Python projects.
Python
133
star
8

vertex

Vertex is a generalized, secure, peer-to-peer communications platform; formerly of the divmod.org project (https://code.launchpad.net/divmod.org/)
Python
73
star
9

nevow

Web Application Construction Kit
Python
62
star
10

tubes

A series of tubes.
Python
55
star
11

qt5reactor

Twisted and PyQt5 eventloop integration. Borrowed from https://github.com/nehbit/aether-public/blob/master/qt5reactor.py
Python
47
star
12

txacme

Twisted client for the ACME (Automatic Certificate Management Environment) protocol
Python
43
star
13

imaginary

Imaginary is a system for building fictional, interactive worlds via parallel, intersecting simulations.
Python
34
star
14

txaws

Twisted-based Asynchronous Libraries for Amazon Web Services and clouds that support the AWS APIs
Python
32
star
15

axiom

Divmod Axiom is an object database, or alternatively, an object-relational mapper, implemented on top of Python.
Python
22
star
16

constantly

Symbolic Constants in Python
Python
22
star
17

ampoule

Process pool for Twisted, using AMP
Python
12
star
18

twistedchecker

twistedchecker is a tool to automatically verify code against the Twisted coding standard.
Python
9
star
19

filepath

An object-oriented API for manipulating filesystem paths on POSIX and Windows.
Python
8
star
20

twisted-dev-tools

Tools for twisted development.
Python
7
star
21

mantissa

Divmod Mantissa is an application server with a web interface built using Axiom and Nevow.
Python
6
star
22

newsbuilder

Automatically generate and manage a NEWS file from snippets stored in per-ticket text files.
Python
5
star
23

quotient

Divmod Quotient is a messaging platform developed as an Offering for Divmod Mantissa.
Python
5
star
24

epsilon

Library of utility modules, used by ex-Divmod projects
Python
4
star
25

trac-wiki-archive

Archive for the content of previous Trac Wiki
4
star
26

twisted.github.io

This is the repo for the Twisted Matrix presentation site
JavaScript
3
star
27

sine

Divmod Sine is a standards-based voice-over-IP application server, built as an offering for the Mantissa application server platform.
Python
3
star
28

parsley-protocols

Python
2
star
29

hyperbola

Hyperbola is a blogging and forums system, for having discussions about things.
Python
2
star
30

twisted-iocpsupport

`twisted-iocpsupport` is an extension module for the Twisted `iocp` reactor to use the Windows I/O Completion Ports (IOCP) networking API. You should not need to install it directly or interact with its API; it is a dependency of Twisted on Windows platforms.
Cython
2
star
31

documents

Hosting via GitHub Pages for legacy documentation files
1
star
32

python-info-action

A GitHub Actions action for printing Python environment information
Python
1
star
33

cython-test-exception-raiser

Testing only. A cython simple extension which is used as helper for twisted/twisted Failure tests.
Cython
1
star