Hello, I'm a developer on the Orbited project (http://www.orbited.org), which provides a TCPSocket interface in javascript (emulated over HTTP using ajax and comet.) This TCPSocket allows true bi-directional communication between a web browser and an arbitrary tcp server. One of the other developers pointed me to a recent dovecot thread about webmail. Sorry for the new thread (I just joined this list and couldn't reply to the old emails). Timo Sirainen wrote Wed Aug 13 23:37:11 EEST 2008:> I wrote this a while ago: http://imapwiki.org/ClientImplementation > > One thing that would be nice, that pretty much no webmail does, is to > keep a stateful connection open all the time (or at least some of the > time) instead of creating tons of short-lived connections that ask the > same stuff over and over again. With a stateful connection you could > basically run IDLE and wait for changes there instead of asking all > the time "is there new mail?" "is there new mail now?" "what about > now?".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. We are putting all of our protocol implementations in the soon-to-launch js.io project (www.js.io). As soon as we have any kind of IMAP client prototype, I'll let you know. In the meantime, would anyone be interesting in helping us develop the imap client? Its 100% pure JavaScript, and will greatly ease the development of feature-rich webmail, as a webmail deployment will become a matter of simply running Dovecot, the js.io.imap client, and an HTML gui. -Michael Carter
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thu, 14 Aug 2008 13:51:20 -0700, "Michael Carter" <cartermichael at gmail.com> wrote:> I'm a developer on the Orbited project (http://www.orbited.org), which > provides a TCPSocket interface in javascript (emulated over HTTP using > ajax > and comet.) This TCPSocket allows true bi-directional communication > between > a web browser and an arbitrary tcp server.Interesting... TCP over HTTP over TCP ;)> 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. > > We are putting all of our protocol implementations in the soon-to-launch > js.io project (www.js.io). As soon as we have any kind of IMAP client > prototype, I'll let you know. In the meantime, would anyone beinteresting> in helping us develop the imap client? Its 100% pure JavaScript, and will > greatly ease the development of feature-rich webmail, as a webmail > deployment will become a matter of simply running Dovecot, the js.io.imap > client, and an HTML gui.Maybe you can have a look at http://decimail.org/index.html - I never tried it though. Somebody posted a link to it on the Roundcube Webmail mailing list (http://lists.roundcube.net/mail-archive/dev/2008-07/0000023.html), that's how it got my attention. Patrick. - -- STAR Software (Shanghai) Co., Ltd. http://www.star-group.net/ Phone: +86 (21) 3462 7688 x 826 Fax: +86 (21) 3462 7779 PGP key: E883A005 https://stshacom1.star-china.net/keys/patrick_nagel.asc Fingerprint: E09A D65E 855F B334 E5C3 5386 EF23 20FC E883 A005 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: http://getfiregpg.org iEYEARECAAYFAkik1v4ACgkQ7yMg/OiDoAUnrACdExgaUxOVXBaHQ8ZXGKg0pSi3 Mg4AnijrxRfaY5PEMI6lR5e7stgdpqyr =JHZl -----END PGP SIGNATURE-----
Michael Carter wrote:> Hello, > > I'm a developer on the Orbited project (http://www.orbited.org), which > provides a TCPSocket interface in javascript (emulated over HTTP using ajax > and comet.) This TCPSocket allows true bi-directional communication between > a web browser and an arbitrary tcp server. One of the other developers > pointed me to a recent dovecot thread about webmail. Sorry for the new > thread (I just joined this list and couldn't reply to the old emails). > > Timo Sirainen wrote Wed Aug 13 23:37:11 EEST 2008: > >> I wrote this a while ago: http://imapwiki.org/ClientImplementation >> >> One thing that would be nice, that pretty much no webmail does, is to >> keep a stateful connection open all the time (or at least some of the >> time) instead of creating tons of short-lived connections that ask the >> same stuff over and over again. With a stateful connection you could >> basically run IDLE and wait for changes there instead of asking all >> the time "is there new mail?" "is there new mail now?" "what about >> now?". > > > 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. > > We are putting all of our protocol implementations in the soon-to-launch > js.io project (www.js.io). As soon as we have any kind of IMAP client > prototype, I'll let you know. In the meantime, would anyone be interesting > in helping us develop the imap client? Its 100% pure JavaScript, and will > greatly ease the development of feature-rich webmail, as a webmail > deployment will become a matter of simply running Dovecot, the js.io.imap > client, and an HTML gui. > > -Michael Carter >Hi Michael, I'd be interested to see what you are planning with this so keep me informed. We've been thinking of creating an entirely custom UI layer for squirrelmail for some time (though their templating functionality has been a loooooong time in development). Our goal is to have a very fast webmail interface that does not rely on server speed - actions are queued client side giving instant responses to the server by using asynchronous communication to the backend. What stage are you in creating an IMAP client framework for js.io? Timo's wiki page looks like it is filled with a LOT of sense in implementing IMAP clients. Daniel
Michael Carter wrote:> Hello, > > I'm a developer on the Orbited project (http://www.orbited.org), which > provides a TCPSocket interface in javascript (emulated over HTTP using ajax > and comet.) This TCPSocket allows true bi-directional communication between > a web browser and an arbitrary tcp server. One of the other developers > pointed me to a recent dovecot thread about webmail. Sorry for the new > thread (I just joined this list and couldn't reply to the old emails). > > Timo Sirainen wrote Wed Aug 13 23:37:11 EEST 2008: > >> I wrote this a while ago: http://imapwiki.org/ClientImplementation >> >> One thing that would be nice, that pretty much no webmail does, is to >> keep a stateful connection open all the time (or at least some of the >> time) instead of creating tons of short-lived connections that ask the >> same stuff over and over again. With a stateful connection you could >> basically run IDLE and wait for changes there instead of asking all >> the time "is there new mail?" "is there new mail now?" "what about >> now?". > > > 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. > > We are putting all of our protocol implementations in the soon-to-launch > js.io project (www.js.io). As soon as we have any kind of IMAP client > prototype, I'll let you know. In the meantime, would anyone be interesting > in helping us develop the imap client? Its 100% pure JavaScript, and will > greatly ease the development of feature-rich webmail, as a webmail > deployment will become a matter of simply running Dovecot, the js.io.imap > client, and an HTML gui. > > -Michael Carter >Hi Michael, I'd be interested to see what you are planning with this so keep me informed. We've been thinking of creating an entirely custom UI layer for squirrelmail for some time (though their templating functionality has been a loooooong time in development). Our goal is to have a very fast webmail interface that does not rely on server speed - actions are queued client side giving instant responses to the server by using asynchronous communication to the backend. What stage are you in creating an IMAP client framework for js.io? Timo's wiki page looks like it is filled with a LOT of sense in implementing IMAP clients. Daniel
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