Michael Carter wrote:
Coincidentally, we have just began work on a JavaScript IMAP client. With it, building a webmail app should be *entirely* a UI concern. The good news is that our Socket interface is very stable and is being used in production for protocols like IRC for webchat. The bad news is that none of the the Orbited developers have experience with the IMAP protocol.
One leg up is to run the Dovecot imap command tracer and point a selection of normal clients at it and watch the commands they use. You don't need to support a full IMAP implementation, only the bits which are required to make your app work
However, most existing clients are somewhat inefficient in their use of Javascript so I would suggest that you build a higher level abstraction like "refresh message id list" and then run the IMAP commands past some experts (Timo?) in case someone has some suggestions on more efficient ways to achieve the same effect
Note that Timo has done some work on the LEMONADE extensions and it may be that these will facilitate a more efficient and responsive protocol?
From my own experience I would also suggest that you blindly compress the TCP stream in both direction (gzip or similar is good enough). My experience is that the compression is a win in most situations up to 40-100Mbit kind of connection speeds (ie higher than most internet connections)
Good luck
Ed W