[imap5] Designing a new replacement protocol for IMAP

Bron Gondwana <brong@fastmail.fm> Wed, 08 February 2012 20:15 UTC

Return-Path: <brong@fastmail.fm>
X-Original-To: imap5@ietfa.amsl.com
Delivered-To: imap5@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C1A8D11E80A0 for <imap5@ietfa.amsl.com>; Wed, 8 Feb 2012 12:15:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.999
X-Spam-Level:
X-Spam-Status: No, score=-0.999 tagged_above=-999 required=5 tests=[BAYES_50=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jt72kzgWgVXd for <imap5@ietfa.amsl.com>; Wed, 8 Feb 2012 12:15:30 -0800 (PST)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by ietfa.amsl.com (Postfix) with ESMTP id 7086011E809B for <imap5@ietf.org>; Wed, 8 Feb 2012 12:15:27 -0800 (PST)
Received: from compute5.internal (compute5.nyi.mail.srv.osa [10.202.2.45]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 6506921311 for <imap5@ietf.org>; Wed, 8 Feb 2012 15:15:26 -0500 (EST)
Received: from web3.nyi.mail.srv.osa ([10.202.2.213]) by compute5.internal (MEProxy); Wed, 08 Feb 2012 15:15:26 -0500
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.fm; h= message-id:from:to:mime-version:content-transfer-encoding :content-type:subject:date; s=mesmtp; bh=GeNe1ttnOq1n/NloKRSQGsm anwc=; b=ost2Ay/p0TnBqefBy2OARnPGZgJHIoX2NqHOer1xhDpmw9UkDM1kcMa YPckh5iwS/0gxaXPfISkkAiZoscPbGkEIlQvn7IIEnbTUNwk69N+xxQWSU+DyFF1 Cyi/t/PuQi+BlDGyCARq6NupzdTjMFhhMfeWL2gwOf4ODhDxGfdg=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:mime-version :content-transfer-encoding:content-type:subject:date; s=smtpout; bh=GeNe1ttnOq1n/NloKRSQGsmanwc=; b=NmbsgWtFf4UkQfk4eEij5HzSuZ1E nd/CkVAAY0z89BoHOKgeDfa/HNSG+Yy5zswK081cRGPjwb5ve7uE0KQfXocOXf7f q3Hisk6nASGegsHhfoFv3AD06szR46U/7lKnEig/9wHgoj+J7GzksWbiayNX8iSI o6rsswnmF3al8nE=
Received: by web3.nyi.mail.srv.osa (Postfix, from userid 99) id 3E653400E0; Wed, 8 Feb 2012 15:15:26 -0500 (EST)
Message-Id: <1328732126.32086.140661033971485@webmail.messagingengine.com>
X-Sasl-Enc: CzgA3IIG77nbd4ZYPwvK6TfQVTbMqJS2ZNj6rq9hgZVQ 1328732126
From: Bron Gondwana <brong@fastmail.fm>
To: IMAP Protocol Interest List <imap-protocol@u.washington.edu>, "Discussion on drastically slimming-down IMAP." <imap5@ietf.org>, ietf-imapext@imc.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"
X-Mailer: MessagingEngine.com Webmail Interface
Date: Wed, 08 Feb 2012 21:15:26 +0100
Subject: [imap5] Designing a new replacement protocol for IMAP
X-BeenThere: imap5@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion on drastically slimming-down IMAP." <imap5.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imap5>, <mailto:imap5-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imap5>
List-Post: <mailto:imap5@ietf.org>
List-Help: <mailto:imap5-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imap5>, <mailto:imap5-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Feb 2012 20:15:31 -0000

I've given up on the IMAP5 mailing list going endlessly around in circles,
though I'm definitely going to read through the backlogs and remind myself
again what everyone spoke about, because there was some excellent discussion.

So - I will build something and prove that it's good by showing improved
user experiences.

And I'm happy to keep talking here on these mailing lists too.

I've started a wiki page:

http://imapwiki.org/ReplacementProtocol

and plan to blog about what I'm doing on our own (Opera's) blogging platform,
to practice using it:

http://my.opera.com/brongondwana/blog/

I plan to make on a protocol which can replace IMAP in most of its current
uses.  I want to get (at least) two working server implementations, and
two working clients.  I have at least in-principle support from enough
project maintainers to do that.

My strong philosophical ideals are:

* Simple to build clients - morons welcome. If it's not clear the right way
  to do something to someone just reading a protocol dump, we haven't done a
  good enough job.  We can't expect you to read 30 RFCs and resolve their
  conflicts yourself before starting coding, and we won't insult you if you
  didn't get it right.  Where there is necessary complexity, the server
  authors bear the brunt.

* Server side data model compatible with IMAP4 + extensions; we need to
  be able to co-exist.

* Handle disconnection more gracefully - able to cheaply resync state (I
  plan to reuse the QRESYNC/CONDSTORE logic here - the model is sane).
  Getting reliable updates on mailbox state changes should not require a
  continuous connection.

* Easy to proxy - regular syntax (UTF-8 for all communications where
  possible, but won't screw about trying to "fix" MIME - message file
  format will remain unchanged)

* NO MAGIC - everything is explicitly requested.  No UNSELECT/CLOSE/
  SELECT another mailbox special behaviours, no implicit FETCH + SET \Seen,
  no pre-calculated "UNSEEN X" that wasn't asked for. (This probably means
  some way to compose actions and fetches, but it's better than being
  complex and magical.  Remember our friends the morons.)

* COMPLETE TEST SUITE that exercises every constraint in the spec, both
  positive and negative constraints.  An implementation which passes the
  tests is compliant.  An implementation which doesn't is not.  This is
  much more likely to produce inter-operable implementations than a wordy
  spec ...

  ... if the authors want inter-operability that is.  Nothing can
  protect against a deliberate embrace and extend - though negative
  constraint tests (MUST NOT) should help.


I would love input.  I spent most of the time at FOSDEM this year talking to
other people involved in email about these ideas.  I quite like the mailbox
model behind IMAP, but I want to address the pain points I have seen so many
times over the years.

Snide comments from those who don't agree with the goals are welcome too...
I just won't listen to you.  These goals are very important to me.

Regards,

Bron.
-- 
  Bron Gondwana
  brong@fastmail.fm