The highlights of this release are:
- twisted.web.client.Agent now supports IPv6! It's also now the primary web client in Twisted, with twisted.web.client.getPage being deprecated in favour of it and Treq.
- twisted.web.server has had many cleanups revolving around timing out inactive clients.
- twisted.internet.ssl.CertificateOptions has had its method argument deprecated, in favour of the new raiseMinimumTo, lowerMaximumSecurityTo, and insecurelyLowerMinimumTo arguments, which take TLSVersion arguments. This allows you to better give a range of versions of TLS you wish to negotiate, rather than forcing yourself to any one version.
- twisted.internet.ssl.CertificateOptions will use OpenSSL's MODE_RELEASE_BUFFERS, which will let it free unused memory that was held by idle TLS connections.
- You can now call the new twist runner with python -m twisted.
- twisted.conch.ssh now has some ECDH key exchange support and supports hmac-sha2-384.
- Better Unicode support in twisted.internet.reactor.spawnProcess, especially on Windows on Python 3.6.
- More Python 3 porting in Conch, and more under-the-hood changes to facilitate a Twisted-wide jump to new-style classes only on Python 2 in 2018/2019. This release has also been tested on Python 3.6 on Linux.
- Lots of deprecated code removals, to make a sleeker, less confusing Twisted.
- 60+ closed tickets.
For more information, check the NEWS file (link provided below).
You can find the downloads on PyPI (or alternatively our website). The NEWS file is also available on GitHub.
Many thanks to everyone who had a part in this release - the supporters of the Twisted Software Foundation, the developers who contributed code as well as documentation, and all the people building great things with Twisted!
Amber Brown (HawkOwl)