ANN: Twisted 0.11.0, an event-based framework for internet applications

Itamar Shtull-Trauring usenet@itamarst.REMOVEorg
Mon, 08 Oct 2001 14:05:11 +0200

Quote of the Release:

   Adventure, excitement... a Jedi craves not these things.
         -- Silent Bob, in "Mallrats"

What is this?

   Twisted is an event-based framework for internet applications.  It
   includes a web server, a telnet server, a multiplayer RPG engine, a
   generic client and server for remote object access, and APIs for creating
   new protocols and services. Twisted supports integration of the Tk or GTK
   event loop with it's main event loop. It also has basic support for
   running servers on top of jython.

   Twisted currently supports the following protocols, all implemented in
   pure python, most of them as both servers and clients:

     - FTP
     - HTTP
     - SMTP
     - irc
     - telnet
     - POP3
     - AOL's instant messaging TOC
     - DNS (client only)
     - LDAP (client only)
     - finger
     - Echo, discard, chargen and friends
     - Perspective Broker

   For more information, visit

What's new in 0.11.0?

   twisted servers can now run using jython, albeit in an inefficient manner.

   twisted.names, a DNS system, was checked in. It is still being worked on.

   SSL support is now much more robust, and dirdbm works much better as well.

   LineReceiver (used by HTTP, SMTP, etc.) limits line length, preventing
   DoS attacks. SafeNetstringReceiver serves a similar purpose for netstring
   based protocols.

   Servers -- especially Web servers or others that open and close
   connections frequently -- under high loads should run faster, since
   multiple accept() calls are done per select(). Threaded apps might run
   faster as well.

   Enhanced the twisted.web.widgets API to accomodate multiple deferreds.

   Protocol revision in PB, refactoring authentication into simply being an
   object one can connect to.

   New connection API for PB, simplifying and reducing the number of
   potential failure points in the process of writing a PB client.

   Much more example code for PB, including some simple examples involving
   web.widgets and GTK clients for PB services.