1:LastChangedDate: $LastChangedDate$
2:LastChangedRevision: $LastChangedRevision$
3:LastChangedBy: $LastChangedBy$
4
5Installing Optional Dependencies
6================================
7
8This document describes the optional dependencies that Twisted supports.
9The dependencies are python packages that Twisted's developers have found useful either for developing Twisted itself or for developing Twisted applications.
10
11The intended audience of this document is someone who is familiar with installing optional dependencies using `pip`_.
12
13If you are unfamiliar with the installation of optional dependencies, the `python packaging tutorial`_ can show you how.
14For a deeper explanation of what optional dependencies are and how they are declared, please see the `setuptools documentation`_.
15
16The following optional dependencies are supported:
17
18* **dev** - packages that aid in the development of Twisted itself.
19
20  * `pyflakes`_
21  * `twisted-dev-tools`_
22  * `python-subunit`_
23  * `Sphinx`_
24  * `TwistedChecker`_, only available on python2
25  * `pydoctor`_, only available on python2
26
27
28* **tls** - packages that are needed to work with TLS.
29
30  * `pyOpenSSL`_
31  * `service_identity`_
32  * `idna`_
33
34* **conch** - packages for working with conch/SSH.
35
36  * `pyasn1`_
37  * `cryptography`_
38
39* **soap** - the `SOAPpy`_ package to work with SOAP.
40
41* **serial** - the `pyserial`_ package to work with serial data.
42
43* **all_non_platform** - installs **tls**, **conch**, **soap**, and **serial** options.
44
45* **macos_platform** - **all_non_platform** options and `pyobjc`_ to work with Objective-C apis.
46
47* **windows_platform** - **all_non_platform** options and `pywin32`_ to work with Windows's apis.
48
49* **http2** - packages needed for http2 support.
50
51  * `h2`_
52  * `priority`_
53
54* **contextvars** - the `contextvars`_ backport package to provide contextvars support for Python versions before 3.7.
55
56
57.. _pip: https://pip.pypa.io/en/latest/quickstart.html
58.. _TwistedChecker: https://pypi.python.org/pypi/TwistedChecker
59.. _pyflakes: https://pypi.python.org/pypi/pyflakes
60.. _twisted-dev-tools: https://pypi.python.org/pypi/twisted-dev-tools
61.. _python-subunit: https://pypi.python.org/pypi/python-subunit
62.. _Sphinx: https://pypi.python.org/pypi/Sphinx/1.3b1
63.. _pydoctor: https://pypi.python.org/pypi/pydoctor
64.. _pyOpenSSL: https://pypi.python.org/pypi/pyOpenSSL
65.. _service_identity: https://pypi.python.org/pypi/service_identity
66.. _pyasn1: https://pypi.python.org/pypi/pyasn1
67.. _cryptography: https://pypi.python.org/pypi/cryptography
68.. _SOAPpy: https://pypi.python.org/pypi/SOAPpy
69.. _pyserial: https://pypi.python.org/pypi/pyserial
70.. _pyobjc: https://pypi.python.org/pypi/pyobjc
71.. _pywin32: https://pypi.python.org/pypi/pywin32
72.. _`setuptools documentation`: https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies
73.. _`python packaging tutorial`: https://packaging.python.org/en/latest/installing.html#examples
74.. _idna: https://pypi.python.org/pypi/idna
75.. _h2: https://pypi.python.org/pypi/h2
76.. _priority: https://pypi.python.org/pypi/priority
77.. _contextvars: https://pypi.org/project/contextvars/
78