5 ms·
Is there a “modern” equivalent to XMPP? How does it compare to the matrix protocol?
by pixelatedindex 2y ago
Is there a “modern” equivalent to XMPP? How does it compare to the matrix protocol?
- singpolyma3 2y agoThe modern equivalent to XMPP is XMPP. Like every other healthy and alive protocol it evolves over time to meet new needs.
- xg15 2y agoIs it actually "alive" still?
- MattJ100 2y agoYes, definitely! Latest edition of the monthly newsletter highlighting various stuff in the community and ecosystem: https://xmpp.org/2024/11/the-xmpp-newsletter-october-2024/ https://xmpp.org/2024/11/the-xmpp-newsletter-october-2024/
- DennisP 2y agoGiven the context above, does that mean the modern version is no longer "overcomplicated and hard to implement?"
- SamWhited 2y agoI don't know that it was ever "over complicated and hard to implement" (see my response to the thing you're quoting above, I think), at least, not any more so than any protocol, but I'm still not really sure what the specific complaints are when people mention this, maybe you could elaborate on what's hard to implement? Most people just grab an XMPP library and go, you don't normally have to implement XMPP itself to make a client (just like you don't implement HTTP when you want to make a request, you go snag a library that does this for you).
- Lammy 2y agoIf one tried to design a new protocol and implement All The Things then it would end up just as complicated, except now their user base would be split. XMPP of a decade ago didn't support lots of features that modern users will expect if they come over from other messaging systems.
- mindcrime 2y ago> Is there a “modern” equivalent to XMPP? Yes, it's called "XMPP".
- rw_grim 2y agomore specifically https://docs.modernxmpp.org/ https://docs.modernxmpp.org/
- SamWhited 2y agoMatrix and XMPP operate in very different ways Matrix is a graph database synchronization protocol, whereas XMPP is event based. Let's use group chats as an example: with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server. This means it's very resource intensive to scale, but very reliable since you pretty much always have chat history available and if one server goes offline you can keep the group chat alive on one of the other servers (let's ignore netsplit style concerns for now, it's not really relevant to the high-level nature of the question). XMPP on the other hand is event based, this makes it much less resource intensive, but means that if the server you're trying to communicate goes down you don't have access to that chat room anymore (some servers mitigate this by using traditional high-availability techniques like clustering, but that's not really a protocol thing, I'm sure some Matrix servers also do clustering as part of their scaling strategy). As far as features specifically related to IM, both support most of the same things, it's just a question of whether clients have implemented them or not in either protocol.
- dingnuts 2y agoThe real difference between XMPP and Matrix is that I can read the discussions about XMPP on this site without the CEO of the company that pretends not to own it, but does de facto own it through some kind of wannabe Sam Altman "it's actually a non profit that happens to be controlled by my for profit company" move, coming into the comments to denigrate anyone with an ounce of criticism for his product
- SamWhited 2y ago(oh yah, FWIW he's done this to me too; shows up and accuses me of being biased against matrix and not disclosing my affiliation with XMPP stuff… meanwhile he controls a company and gets paid by them, I just chose to work on XMPP open source stuff instead of Matrix stuff and don't get paid for it)
- tcfhgj 2y agoNot being paid doesn't mean less biased. To the contrary: I expect a high bias since you choose to spend lots of time on it despite not being paid for it
- ensignavenger 2y agoBased on my research, but no deep implementation experience with either: XMPP continues to advance, so could be considered modern if you use the latest versions. Matrix is more of an event sync protocol, consisting of a server to server sync protocol and a client to server protocol (sort of like email). It is mostly used for chat, but appears to be more flexible. Matrix uses JSON and HTTP. XMPP is focused on chatmessages. In many ways XMPP and Matrix are similar. XMPP is based on XML and originally used TCP as the transport protocol, but has been extended to use HTTP now as well. EDIT: I think a clearer way to describe the basic difference is that Matrix syncs Matrix Events across servers, whereas XMPP facilitates exchanging messages with clients. Most folks use the protocols to exchange chat messages. It is the way this is accomplished by the corresponding servers that differs significantly.
- ptman 2y agoMatrix is described as a distrubuted graph database. Chat is just the most common use case, but there are others.