Compare XMPP v. Matrix

xmpp>matrix

4 Likes

Please what it means? xmpp better than matrix? I’m not expert :sweat_smile:
Thank you :pray:

1 Like
1 Like
4 Likes

Thank you for your link! I read it and I also asked to ChatGPT to explain me in a simple way and with an example the differences between those two protocols!
It seems matrix is much better than xmpp!
Here what the “oracle” said to me:


Yes, of course! Let’s explore the differences between Matrix and XMPP with a practical example to better clarify how they work.

1. Architecture and Decentralization

  • XMPP: Each user connects to a specific server (similar to how emails work). For example, if you use an XMPP server (like xmpp.example.com) and your friend uses another server (xmpp.another.com), the messages are sent from your server to your friend’s server. Each server stores its own data. If one server goes offline, messages sent during that period might be lost or undelivered until the server is restored.
  • Matrix: In Matrix, the servers participate in a federated network and synchronize data with each other. If you send a message to a group on Matrix, that message is distributed and synchronized across the participating servers. Even if one server goes offline, the other servers in the group will still retain a copy of the message. When the offline server comes back online, it retrieves the missed messages by syncing with the other servers.

Example:

Suppose you and your friend use different servers.

  • In XMPP: If your friend’s server goes offline, they won’t receive your messages until their server is back online. If either your server or your friend’s server experiences connectivity issues, you may lose some messages.
  • In Matrix: If your friend’s server goes offline, your message will be stored on the other servers in the network. When their server comes back online, it will sync the messages that were missed, ensuring nothing is lost.

2. Message Persistence and History

  • XMPP: It doesn’t have automatic synchronization between devices. If you log in from a different device (for example, switching from your phone to your computer), you might not see the chat history unless the server is configured to store it.
  • Matrix: Message history is a built-in feature of Matrix. If you log into a chat from a new device, you will automatically see the entire history, as Matrix servers synchronize data across devices.

Example:

  • In XMPP: If you have a conversation on your computer and then switch to your phone, you might not see the messages you sent from the computer unless the server supports conversation storage.
  • In Matrix: If you use Element on your computer and then open the app on your phone, you will see the entire chat history synchronized, no matter which device you’re using.

3. Federation

  • XMPP: While it is federated (meaning it allows different servers to communicate with each other), each server is independent, and there is no continuous synchronization between them.
  • Matrix: Federation in Matrix is much more integrated. Federated Matrix servers keep synchronized copies of conversations and can retrieve lost data if a server comes back online after being offline.

Example:

  • In XMPP: Each server hosts only its own users and sends messages to other servers when necessary.
  • In Matrix: Servers involved in a conversation keep synchronized copies of the messages, which ensures
2 Likes

These are the same thing.

These are the same

Every server configures this by default and has for over a decade.

Saying this is akin to saying desktop linux doesn’t have a gui by default. It might technically be true but it’s meaningless since nearly every distro configures a gui by default.

I see this as a benefit to XMPP over matrix. My server isn’t storing messages that don’t involve me and other servers aren’t storing my messages that don’t involve them.

5 Likes

I find xmpp more stable and less consuming resources.

4 Likes

A few interesting links:

1 Like

Unlike Matrix, XMPP appears to have no feature complete, cross-platform reference app that you can just recommend to non-technical users regardless of their OS.

This can make adoption not as easy as Matrix.

4 Likes

Converse.js would be my recommendation:

1 Like

Do you mean Element? I have heard that it is built on Electron, and thus, is large, slow, ever-changing, and has issues.

For a Librem 5, Chatty was advertised as the Matrix client of choice. However, I did not try it yet. Would not you recommend it? For some reason, when I click on links to Purism Matrix server chats in this forum, I am confronted with a list of suggested clients without Chatty. I find it confusing.

Element

Fully-featured Matrix client, used by millions.

SchildiChat

Feature-rich messenger for Matrix based on Element with some extras and tweaks.

Weechat

Command-line Matrix interface using Weechat.

Nheko

A native desktop app for Matrix that feels more like a mainstream chat app.

Fractal

GNOME client, suitable for desktop and mobile. Written in Rust.

Quaternion

Qt5 and C++ cross-platform desktop Matrix client.

FluffyChat

Chat with your friends using the cutest messenger in the Matrix network

NeoChat

NeoChat is a convergent, cross-platform Matrix client.

Thunderbird

Thunderbird is a free open-source email, calendar & chat app.

Cinny

A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch.

1 Like

I am confronted with a list of suggested clients without Chatty.

They won’t show Chatty because it is marked as beta here: Matrix.org - Clients

Probably will show up after 1.0 release…

2 Likes

Converse.js

Can this work as an alternative to an email based contact form?

What about live chat?

1 Like

Do you mean Element? I have heard that it is built on Electron, and thus, is large, slow, ever-changing, and has issues.

I find Element and Fluffy Chat both pretty feature complete compared to XMPP clients, even Cinny except for calling.

Yes, Element does have issues especially in larger groups. Enabling e2ee in large groups doesn’t make too much sense anyway.

Yes Electron base creates problem but it also makes cross platform availability easier and the new ElementX is improving and does not have Electron base.

1 Like

Sure, take a look at its dedicated page on the XMPP website:

You will want to review their supported XMPP extensions for compliance details.

2 Likes

Matrix has extra redundancy at a higher operating cost. Matrix costs more in storage, processing power and need more frequent updates. XMPP lacks good featured apps on GNU/Linux (Android and iOS has good clients). Dino and Gajim is mostly there but still needs more polish.

3 Likes

Right now I prefer XMPP as well, but the point about clients for every OS is a huge problem for XMPP. Clients focus on Linux and Android. In fact, one of the best clients for XMPP is the android Conversations app. On Linux Dino is one of the best. Both are mainly for Linux and Android. (There are efforts to get Dino working on Windows also through a fork called Dino+ as Dino development seems to have stopped.) It seems that every effort that gets started to fix this issue for XMPP falters and ultimately runs out of gas. (Snikket is the current effort. Their effort rules, and I’m not trying to cast shade, just this seems to be the reality. And no, there are no GOOD iOS apps for iOS. They all look like they were developed at the early 2000s and this is a huge turn off to anyone who you are trying to convince to use it. Conversations on Android looks SO much better by comparison.

On the contrary, the big overhead of an app, Element is possible thanks to Electron. It is all those things, BUT it works on every OS, to include iOS, Mac OS, and Windows. Hence it is FAR more popular.

XMPP can be the best under the sun, but if most of the people in the world don’t have a good or compelling client to use, it doesn’t really matter.

I run a Matrix and XMPP server. The XMPP server has the system using a whooping 300+ megs of memory (RAM). The Matrix server is using an astounding 600+ megs of memory. I think claims of Matrix being bloated have been addressed and improvements made. This tends to happen when projects are well funded.

2 Likes