[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.