Federated messaging protocols

a post to ask a question to you as /e/-community: am I correct in saying that XMPP and Matrix are the 2 most-used/popular federated, open-source messaging protocols in existence currently? Are there any other big ones?

Regain your privacy! Adopt /e/ the unGoogled mobile OS and online servicesphone

Yes, you’re right! As I can remember, obviously

Tox is one more open source federated protocol. The Tox messenger seems to be often overlooked, although it offers good features. Telegram is using their own MTProto protocol, Wire is using Proteus, which is based on the Signal protocol and these are obviously not federated (although the Signal protocol was federated for a while, but Moxie considered it to be bad for development). Btw WhatsApp and Facebook Messenger also implemented the Signal protocol.

Other federated protocol I can think of is Briar, but the messenger works only on android. It isn’t really widespread at this point of time.

I saw statistics with “Most popular messengers”, showing WhatsApp, Facebook Messenger, We Chat, QQ Mobile, Telegram, Snap Chat - in that order. At least the (partly) opensource Telegram is on the list with 400 million users (WhatsApp had July 2020 around 2 billion).

In general Signal might be the most popular open source messenger with tens of millions users. As for federated protocols I think you’re correct with xmpp and matrix.

1 Like

interesting. I looked into Tox, it is indeed federated. Briar is interesting, because together with Jami they are distributed messagers, meaning there are no servers at all any longer. But I am unsure about if the are federated, meaning that anyone can start a new server+app that uses their protocols and federate with them. Are you sure Briar is federated?

Tox, Jami and Briar are distributed, rather than federated.

1 Like

Edit of previous post: @Vaughan , you are correct, Tox is distributed. Tox is also federated, because anyone can build a new client and start using the network. Does anyone know if this is possible also for Jami and Briar? Or are you locked into their application if you want to use their protocols?

@Rik Jami is a GNU project and Briar is available on F-Droid, so anyone can get the source and, by implication, they are also federated by your definition. I haven’t tried Briar as it is text only. My experiences with Jami were generally pretty bad so I haven’t looked at it for about a year. I have both an XMPP and Matrix server at home, and, on a Samsung Galaxy S5 (klte,) XMPP (via the Conversations app or its clones) is by the far superior experience.

thanks @Vaughan , i agree, XMPP and Conversations/Quicksy.im work really well.
Re federated, definitions all differ of course, but I meant that anyone can build a new client that is able to communicate with the existing client(s). Tox has multiple clients and encourages this actively. Briar and Jami appear to be projects so far with only 1 client

@Rik Federated means you don’t create an account with a single server. This is the more usual definition. For example, there are many third party Telegram clients but only one central server (cluster/datacentre.) You can’t run your own Telegram server nor join the network by creating an account with an alternative provider. It’s the same for Facebook & its Messenger app - there are third party clients available, but you have to sign up and interact with other users through Facebook’s servers. XMPP & Matrix are federated, as demonstrated by the fact that I am running my own servers for each and can interact with users of other servers via my own. XMPP servers seem a lot lighter than Synapse and they’ve been around longer. This is why there are plenty around. Matrix, on the other hand, is almost de facto non-federated because users are concentrated on matrix.org. This will likely change though as more Matrix server instances come online and more (efficient?) implementations are developed.

yes I agree, federated most commonly means that there can be multiple servers from which accounts can communicate with each other. I just think there should be an extra term “client-federated” or something along those lines, in addition to “server-federated”, to be able to make the distinction between protocols for which different clients can be developed from which accounts can communicate with each other

I think the value of third party clients for centralised services is so limited as to be almost worthless. The data collection most valuable to the provider and most damaging to the user is done primarily via account connections through the server, regardless of which client is used.

1 Like

hm i agree partly. Data collection happens at server level yes, but at a UX/UI level, the clients have a lot of power. Multiple options for clients allow for users to choose between clients they like best in that regard, and for clients to compete with each other. Same for distributed messagers.

thanks for the input by the way! i am quite enjoying this detailed exchange :slight_smile:

Me too :+1:

A choice of clients is certainly a good thing. But for a centralised service you’re captured just by using it.

1 Like

For the sake of completeness, we should also mention deltachat – using emails underneath, it is probably the most pristine example of federation (and non-silo protocol).

1 Like

Mmmmaybe. As you say, it’s really just email. The Deltachat part is just presentation. The problem with email is that although, in practise, it can be instant, there is nothing in the protocol which attempts to make it so. Emails taking days to arrive is still a thing with Deltachat.

@Vaughan having been using it with my partner for 1+ year, without any delivery issue. Rather indistinguishable from Conversations/Whatsapp in my (admittedly limited) experience.

However, deltachat’s unique ability to transparently communicate with people not using the deltachat client (they just get regular emails) is great and indeed unique in the landscape of instant messaging.

I agree it’s a good thing, just not a complete solution. As (bad) luck would have it, I’m suffering from email delay in a conversation I’m having with someone right now :grinning: