Event-driven networking engine written in Python. (LADI project)
Go to file
Adi Roiban 89c395ee79 Update the release date. 2022-03-01 10:39:34 +00:00
.github drop non-functional pypy3.6 job as well 2022-01-14 00:56:04 -08:00
admin [pre-commit.ci] auto fixes from pre-commit.com hooks 2021-08-06 07:00:43 +00:00
azure-pipelines wow azure is *on the ball* when it comes to removing unsupported versions: https://endoflife.date/python 2022-01-14 00:19:23 -08:00
bin/admin [pre-commit.ci] auto fixes from pre-commit.com hooks 2021-08-06 07:00:43 +00:00
docs Update docs/core/development/policy/release-process.rst 2022-01-27 09:56:16 +00:00
src/twisted python -m incremental.update Twisted --newversion 22.2.0 2022-03-01 10:37:58 +00:00
.coveragerc Exclude 'raise NotImplementedError' from coverage 2021-05-02 01:35:59 +02:00
.git-blame-ignore-revs ignore pre-commit based 'black everything' commit 2020-10-22 17:14:28 +01:00
.gitattributes
.gitignore restore default tox workdir 2020-10-10 21:54:58 +01:00
.pre-commit-config.yaml move isort above black 2021-08-06 07:57:17 +01:00
.readthedocs.yml Update after review. Add some debug. 2020-12-10 22:59:02 +00:00
CONTRIBUTING.md Revise CONTRIBUTING.md 2020-07-18 16:03:07 -07:00
INSTALL.rst remove references to py3.5 2021-02-28 21:55:39 +00:00
LICENSE Bump copyright. 2022-01-26 23:08:18 +00:00
MANIFEST.in Fix manifest. 2021-08-01 18:02:36 +01:00
NEWS.rst Update the release date. 2022-03-01 10:39:34 +00:00
README.rst Merge branch 'trunk' into release-22.1.0-10296 2022-02-07 13:30:54 +00:00
code_of_conduct.md
codecov.yml Add link to trac ticket. 2021-04-05 20:21:48 +01:00
mypy.ini Merge branch 'trunk' into 10198-mypy-test_core 2021-07-21 23:49:41 -07:00
pyproject.toml configure isort 2021-08-04 22:32:45 +01:00
setup.cfg MyPy 0.930 and mypy-zope 0.3.4 2021-12-27 17:50:10 -08:00
setup.py [pre-commit.ci] auto fixes from pre-commit.com hooks 2021-08-06 07:00:43 +00:00
tox.ini bump sphinx version 2021-09-06 15:32:06 +01:00

README.rst

Twisted
=======

|gitter|_
|rtd|_
|pypi|_
|mypy|_

For information on changes in this release, see the `NEWS <NEWS.rst>`_ 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 <INSTALL.rst>`_.


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

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

Help is also available on the `Twisted mailing list <https://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 `irc.libera.chat <https://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 <https://twistedmatrix.com/documents/current/core/development/policy/coding-standard.html>`_::

  $ 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 <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.


.. |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

.. |mypy| image:: https://github.com/twisted/twisted/workflows/mypy/badge.svg
.. _mypy: https://github.com/twisted/twisted

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