đž Archived View for idiomdrottning.org âş stray-bridge-musings captured on 2024-05-12 at 15:33:29. Gemini links have been rewritten to link to archived content
âŹ ď¸ Previous capture (2024-02-05)
-=-=-=-=-=-=-
Five months ago, the ejabberd XMPP server dev team blogged that they were going to support Matrix:
Matrix protocol added to ejabberd / ProcessOne
While that hasnât been committed to their âCommunity Editionâ yet (and maybe won't ever? Reading the comment section it seems like OMEMO/OLM conversion is kind if a tricky creature. But who knows what happens in the hearts of cathedrals), the post is still an enjoyable read for the snipes and jabs at Matrix:
Of course, by design, the Matrix protocol cannot scale as well as XMPP or MQTT protocols. At the heart of Matrix protocol, you have a kind of merging algorithm that reminds a bit of Google Wave. It means that a conversation is conceptually represented as a sort document you constantly merge on the server. This is a consuming process that is happening on the server for each message received in all conversations. Thatâs why Matrix has the reputation to be so difficult to scale.
The Matrix standard specifies RESTful HTTP APIs for securely transmitting and replicating JSON data between Matrix-capable clients, servers and services. Clients send data by PUTing it to a âroomâ on their server, which then replicates the data over all the Matrix servers participating in this âroomâ. This data is signed using a git-style signature to mitigate tampering, and the federated traffic is encrypted with HTTPS and signed with each serverâs private key to avoid spoofing.
Holy heck. IRC, XMPP and email only have to worry about one message at a time on the wire. Matrix needs to sign & send the entire universe.
Anyway, I was thinking about that ejabberd announcment today, since Iâve been on a bridges kick, prompted by my newfound enthusiasm for XMPP, after finding out that Bitlbee can send multiple-line messages.
On Matrixâ old bridges blog post they list a bunch of categories of bridges, and mention in passing s2s bridges:
Server-to-server bridging
Some remote protocols (IRC, XMPP, SIP, SMTP, NNTP, GnuSocial etc) support federation - either open or closed. The most elegant way of bridging to these protocols would be to have the bridge participate in the federation as a server, directly bridging the entire namespace into Matrix.
Weâre not aware of anyone whoâs done this yet.
I agree that these are the most interesting bridges and it seems to me that thatâs sort of what the ejabberd team set out to do.
Similarly, there is a project underway called Libervia that seems like itâs both an XMPP client and an ActivityPub / Fediverse server. Curious stuff.âĽď¸
How do I bridge thee? Let me count the ways...
Libervia progress note 2022-W45 - Libervia