Tinymail and Lemonade

About Lemonade

A quote from the Lemonade IETF charter

Lemonade is tasked to provide a set of enhancements and profiles of Internet email submission, transport, and retrieval protocols to facilitate operation on platforms with constrained resources, or communications links with high latency or limited bandwidth.

A primary goal of this work is to ensure that those profiles and enhancements continue to interoperate with the existing Internet email protocols in use on the Internet, so that these environments and more traditional Internet users have access to a seamless service.

How is Tinymail involved

Occasionally a group of people sit together at a conference and others join the discussion about Lemonade and other IMAP enhancements for Mobile devices using conference calls. The primary Tinymail author occasionally joins those meetings too.

Tinymail's IMAP code is about cooperating on this standard. Improving it and getting it adopted. Although Tinymail's license and team members allow for implementations of non-cooperative such standards (E-mail server standards that are being controlled by a single entity, or monopolist) in the repository (unless there are patent problems, of course), the team members encourage server-admin people to deploy -and E-mail client users to use E-mail servers that do utilize existing IETF standards for E-mail. In case those protocols are not enough, the Tinymail team members encourage your developers to cooperate with the Lemonade people at the IETF organization.

How Tinymail is going to cope with the new things in Lemonade

There's still some time

Work on supporting several of the Lemonade IMAP specifications has already begun and some of that work is already implemented and has already been tested.

While some developers of IMAP servers, like Cyrus and Dovecot, are implementing this today and while there are already a few commercial IMAP servers, like Isode M-Box (I have to mention this product, as these people are very important players in the Lemonade spectrum), it's still not a fact that a lot of sites are also already running these versions of the IMAP servers.

You probably understand that it's going to take some time before E-mail site administrators from all over the world will have upgraded a business critical service like E-mail storage.

But that doesn't mean …

That doesn't mean, however, that Tinymail developers should wait for this to happen. Nor are we doing that. We are implementing support for the various Lemonade features piece by piece. By the time Lemonade will be popular among the many IMAP server implementations, Tinymail will most likely have a very good support for the new features of the protocol. That's because Tinymail was, together with Dave Cridland's Infotrope based Polymer and Telomer IMAP E-mail clients, one of the first E-mail client infrastructures to start supporting Lemonade.

Important to know is that many IMAP servers already support some of the Lemonade capabilities. Tinymail also has to work reasonably good on IMAP servers that support very few of the new Lemonade features.

What this means

This means that Tinymail has to support the old Era of IMAP, and on top of that also the new Era of IMAP. The Lemonade Era. In fact, all IMAP E-mail clients will (or should) have to do this. Of course E-mail clients and framework infrastructure, like what Tinymail is, for mobile devices are going to be much more interested in the Lemonade features. That's because Lemonade enabled IMAP servers allow the developer to do more with less bandwidth consumption. Even more importantly, these new IMAP protocol specifications make it possible to receive tne necessary info with fewer roundtrips.

Tinymail implements certain techniques that reduce the amount of bandwidth. It will for example only ask for just what it needs. Nothing more. This is one of the reasons why the Tinymail framework uses a extensively modified version of Evolution's Camel library, called camel-lite. This work is ongoing and will improve in parallel with implementing support for Lemonade. In fact, adding the Lemonade features is going to imply major revisions of the IMAP code. This means that inefficient strategies will be spotted and replaced by more efficient ones.

Some important things to keep in mind

Another important thing to keep in mind is that Tinymail not only has to support IMAP, but also NNTP and POP3. Putting some limits on what can and what can't be done in terms of API and abstracting all this for the application developer. Support for Push E-mail and the IDLE capability is a significantly different idiom if you compare it with, for example, POP3.

Yet, it will happen and it is happening

Yet, yes. The Tinymail developers are determined to follow up on the latest developments in the IMAP specifications. Even though a lot of the Lemonade additions are at this moment in Draft status and/or proposals. Tinymail will be one of the E-mail client frameworks that will push draft specifications by early adopting them.

The Tinymail developers understand that these new concepts, as proposed in the Lemonade drafts, are extremely interesting for mobile users. Though, it's a lot of hard work, we feel that we must support it. That we must go for that extra battle of implementing it at the client side.

And we will, and have.

Current Lemonade related features that are supported

  • QRESYNC - for fast folder synchronizations
  • CONDSTORE - for fast folder synchronizations
  • BINARY - for fast message retrievals
  • IDLE - For instant state, removal and retrieval notifications of messages
  • Smaller improvements - Like reusing the response of LOGIN as CAPABILITY line if possible and limiting the projection of the queries
  • ENABLE - to enable CONDSTORE and QRESYNC

On the agenda

  • NOTIFY - notifications for folders and a replacement for IDLE
  • CONVERT - converting attachments to smaller formats
  • CONTEXT - vfolders at the server
  • CATENATE - to build a message on the server (forward without download)
  • ESEARCH - various enhanced searching methods

References to related other documentation