Subject: [Jmap] Prerequisites for implementing JMAP

From: [email-masked]
Date: Wed, 19 Apr 2017 00:32:22 +0300

Hi,

I'm interested in adding JMAP support for my IMAP server called Wild Duck (https://github.com/wildduck-email/wildduck). Is there a list of prerequisites that such a server should/must already support to implement JMAP? I mean something like "you need CONDSTORE for modseq values, X for Y and Z for Q". So far it is not so clear and I've had several surprises when going through the spec "oh, I need this thing too"

Best regards,
Andris Reinman

---

From: Neil Jenkins <[email-masked]>
Date: Wed, 19 Apr 2017 15:12:49 +1000

Hi Andris,

The JMAP spec is designed to be compatible with an IMAP backend (in
that you can serve IMAP and JMAP interfaces to the same data), but is
not defined in terms of IMAP so there's no exact set of IMAP extensions
you *have* to support necessarily to support JMAP. For example, if you
support CONDSTORE you will probably reuse the modseqs for doing
getMessageListUpdates etc., but you don't *have* to. You could
implement it with a transaction log instead for example, if you are not
doing IMAP as well.
As part of the charter, the JMAP WG intends to produce a document
“describing how a dual IMAP and JMAP server implementation can be done”,
but work on this has not yet started.
Neil.