is there already some discussion about using JMAP as client-server protocol for instant messaging? The only things I could find on the web are:
- https://www.atmail.com/blog/rafael-laguna-imap-jmap/
- https://news.ycombinator.com/item?id=19216077
- https://gultsch.de/
As of today I'd say the most prominent open instant messaging protocols are IRC, XMPP, Matrix, Signal and maybe DeltaChat (https://delta.chat/en/).
From those Signal is not very open to federation or hosting your own server, but the others have been created with a distributed architecture in mind.
DeltaChat is based on normal email + autocrypt for end-to-end encryption. The major drawback is the missing push capability for mobile clients, so JMAP would fit there directly.
XMPP was created when mobile clients were not as widespread as today. Push support was suggested as XEP-0357 (https://xmpp.org/extensions/xep-0357.html) which is now in deferred state. JMAP could be used as a proxy for an XMPP server to connect mobile clients with real push capabilities, like it is already done for IMAP.
Matrix was created to improve on all those flaws that XMPP currently has (proper end-to-end encryption also for groups and push support for mobile) but created it's own server to client transport protocol. To ease client connectivity they chose to build on HTTPS, but as we all know that's not enough. You have to add special semantics on top to allow synchronization of state and server side pushes.
Since I have worked with Matrix over the last year I learned that the Synapse server implementation and also the protocol itself have their limitations regarding caching, paging and proper REST semantics. Also Matrix is not an RFC standard and still evolving in certain areas.
All this means that client libraries have to implement the whole stack from transport to synchronization to parsing JSON objects and so on. In my opinion implementations could gain a lot from adopting a standard synchronization layer like JMAP.
So where do we go from here? My dream would be a generic object specification that at least covers IRC, XMPP, Matrix and is built on top of JMAP, so instant messaging clients for mobile or web could easily support all of those at least on the lower layers of communication.
I'd be happy to learn about others opinion on this topic, so feel free to comment.