By Forrest Cook
December 9, 2009
The
Twisted project
is building a Pythonic networking engine with many uses.
From the Twisted home page:
"Twisted is an event-driven networking engine written in Python and licensed under the MIT license." Also:
"Twisted projects variously support TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols (including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more."
See
the twisted advantage for an explanation of why one would want to
use Twisted to develop network applications.
LWN last
looked at the Twisted project in January, 2007 when version 2.5.0
was released, the project has matured a lot since then.
The current version of Twisted is organized into the following categories:
- Twisted core - the project's top level
- Twisted conch - implements the SSH protocol
- Twisted lore - the Twisted documentation
- Twisted mail - implements the SMTP protocol
- Twisted names - implements the DNS protocol
- Twisted trail - the twisted testing framework
- Twisted web - implements the HTTP protocol
- Twisted web2 - implements the HTTP protocol (redux)
- Twisted words - implements instant messaging
See the
project documentation for more detailed descriptions of the
various components.
Christopher Armstrong recently announced
Twisted 9.0.0:
"I'm happy to announce Twisted 9, the first (and last) release of
Twisted in 2009. The previous release was Twisted 8.2 in December of
2008. Given that, a lot has changed!
This release supports Python 2.3 through Python 2.6, though it is the
last one that will support Python 2.3. The next release will support
only Python 2.4 and above. Twisted: the framework of the future!"
Looking at the
release notes for version 9.0.0,
one can see that a large amount of work has gone into cleaning up
the code and fixing bugs, with 285 bug tickets resolved.
New capabilities are summed up in the release announcement:
In the core:
- The Windows IOCP reactor now supports SSL.
- The memcache protocol implementation got some nice new features.
In Twisted Web:
- There's a new HTTP client API and protocol implementation, starting
at twisted.web.client.Agent. It's still pretty low-level, but much
more flexible than the old API.
- There were many improvements to the WSGI support.
In Twisted Conch:
- PyASN1 is now used to parse SSH keys (which means you now need to
install it to use Conch).
- SFTP servers (especially on Windows) now behave a lot better.
In Twisted Mail:
- The IMAP server and client protocol implementations had many fixes.
For example, SASL PLAIN credentials now work.
In Twisted Words:
- XMPP clients now support the ANONYMOUS SASL authentication type.
- The IRC protocol implementations had many fixes.
The Twisted project appears to be alive and thriving as it
continues in its evolution. This is indicated by the numerous
Success Stories and the growing list of
projects that use Twisted.
Congratulations to the Twisted developers for continuing to make
progress on this useful framework.
(
Log in to post comments)