Implement Matrix protocol support
Submitted by Matthew Hodgson
Assigned to Telepathy bugs list
Description
Matrix (Matrix.org) is a relatively new HTTP-based open standard for decentralised group chat, VoIP, and freeform data pubsub with eventually consistent persistance semantics. The idea is to provide a very simple HTTP API to decentralise conversation data without any single server or service provider having a single point of control, whilst providing all the latest and greatest features you'd expect from a modern chat service like Slack, etc. Matrix also provides a wide range of bridges serverside for federating together existing services (IRC, Slack, Lync, XMPP etc) in a decentralised manner. The masterplan is to provide an open fabric for modern interoperable comms on the 'net with full decentralisation.
We implemented an experimental libpurple backend for Matrix (https://github.com/matrix-org/purple-matrix), but we just got a bug report from a telepathy user that it doesn't work via telepathy-haze, as haze assumes that all conversations are 1:1 whereas all conversations in Matrix are group chats (even if they only have 2 participants): https://github.com/matrix-org/purple-matrix/issues/1.
We don't have bandwidth to write a dedicated telepathy backend now (or fix haze), so I'm filing this bug in case someone in the telepathy community might be interested in playing with a fun new protocol and contributing one. Writing clients should be incredibly straightforward; the Matrix client-server API (in its simplest form) is just a REST API with long-polling to receive messages.
thanks!