r1 - 26 Apr 2004 - 10:58:00 - BrianKirschYou are here: OSAF >  Projects Web  >  DevelopmentHome > ServicesWorkingGroup > EmailService > JpCalderoneNotes

JP Calderone Conversation Notes

* JP Calderone is one of the developers of Twisted. He is the main developer of the IMAP libraries used in Twisted and Divmod's Quotient for client side and server side IMAP processing.

* According to JP, the next major release of Twisted (1.3) will be available in roughly one month. The Twisted folks are looking at ways to separate out the various Twisted components to reduce the size / requirements need to use the individual Twisted features. Chris "Radix" Armstrong is the release manager for Twisted. I will following up with Chris to get a clear definition of what will be coming in the next Twisted release.

* JP feels the IMAP Client library in Twisted is finished as it has been reworked and optimized over the last 3 months.

* Twisted IMAP support has been tested against a number of different Unix based IMAP servers including various versions of Cyrus and the UW server. JP will be sending me the complete list of servers some time in the next few days. Twisted however, has not been tested with Exchange.

* To handle IMAP client side requests the Twisted Framework should be used. Divmod's Quotient should be used for server implementations. Quotient has a number of addition dependencies including Berkeley DB so I was glad to hear that we could leverage the core api in Twisted exclusively.

* According to JP, Outlook Express 6 has one of the cleanest IMAP implementations he has ever seen.

* The IMAP parser code in Twisted is "not the greatest" and could be cleaned up. IMAP is a very difficult protocol to write a parser for. However, the performance of the code is quite good and is abstracted with in Twisted so it should not affect developers leveraging it.

* The Twisted IMAP Client supports network and event based pipelining.

* Missing features in Twisted are Digest MD5 Authentication and the IMAP Login protocol.

* This is no PGP support with in Twisted although this something JP would greatly like to see in future versions.

* The POP Library in Twisted is "Lo-Fi". There is a more robust implementation in Divmod's Quotient. At some point the Quotient POP library will be folded back in to Twisted.

* JP so far has only written simple IMAP Clients with the Twisted Framework. He would like feedback and is very open to changes.

* The SMTP library is tied to Quotient as it leverages Quotient features including Berkeley DB where it stores information on when to send a message if it fails on an attempt. Most likely another SMTP library will be used for Chandler.

* The IMAP protocol supports unicode and multi-charset mailbox names. To support this feature Twisted IMAP developers currently need to encode the byte string when sending a request.

* JP would also like to refactor the IMAP client in to multiple objects. Currently one main object handles tasks such as login, getting a handle to a mailbox, retrieving messages, etc. More desirable would be an object based schema where getting a handle to a mailbox returned a mailbox object which contained methods to perform operations on the mailbox for example:

mailBox = IMAPClient.getMailBox("INBOX")
numberOfMessages = mailBox.getNewMessageCount()
messageList = mailBox.getMessages(numOfMessages)

-- BrianKirsch - 26 Apr 2004

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.