[Zope-dev] A modest proposal: Replace medusa with Twisted

Itamar Shtull-Trauring lists@itamarst.org
Wed, 10 Oct 2001 12:11:14 +0200


Actually, this brings up this idea I had - Zope should replace medusa with 
Twisted. Why, you ask?

1) Twisted separates transport from protocols, and the event loop it uses is 
  extendable and generic. That means:

   - It can run on Jython (using threads, someday with java.nio), and it can 
be integrated with the Tk and GTK event loops.

   - Your protocol doesn't have to worry about the transport - Twisted 
supports SSL, TCP and unix domain sockets right now, without having to make 
any change to the protocols.

2) Twisted is designed to run multiple servers and protocols at the same 
time, and these can be changed at runtime. It already includes pure python 
support for HTTP, FTP, LDAP, SMTP, POP3, DNS, telnet, AIM TOC, and IRC, all 
integrated with the main event loop (all have server support except DNS and 
LDAP). Adding new protocols to Zope is not easy, at the moment.

3) Twisted is being actively developed and extended. medusa less so.

4) Good integration with threads - while event based, twisted has a very 
nice model for dealing with threaded apps.

5) Twisted has Perspective Broker, an async.ready remote-object protocol 
that supports caching, object migration, and remote messaging, with 
integrated authentication and authorization. And it ideologically meshes 
with the "object publisher" notion in Zope. No, really :)


Twisted already includes a high-level web framework, but Zope probably would 
not use it, and instead build its own on top of twisted's low-level http 
support.