Some more description by @pukkamustard on rationale of using XMPP as discussed on Matrix:
Do you think I should go for XMPP? What would be the pros and cons?
I think you should go for XMPP. There are three main advantages I see:
- Everything you need to get it working is well specified. You need to read a RFC and a couple of XEPs. Unfortunately ActivityPub seems to be underspecified and getting a working/federating implementation is non-trivial.
- There are working, well-tested and generic XMPP servers that you can just use. Generic in the sense that XMPP servers do not care what kind of content you transport over them. This is not the case for ActivityPub. I am not aware of any ActivityPub server that allows arbirtary types of content to be transported. This was something we were trying to do with CPub. With XMPP we just use ejabberd or prosody (both work perfectly fine).
- With XMPP you’re not bound to Web technologies. XMPP main transport is TCP, but it works over WebSocket (what we are using in GeoPub) and other things such as radio links (XEP-0361: Zero Handshake Server to Server Protocol). ActivityPub is a Web first stack. If you create a non-web client you still need a lot of web libraries.
Cons:
- You need to read some XEPs and other documents that look scary.
- You need to deal with XML. But IMHO that’s better than having to deal with JSON-LD.
Can we easily bridge XMPP with ActivityPub?
Libervia project is working on this (NLnet; XMPP-ActivityPub gateway).
GeoPub uses ActivityStreams over XMPP. Which should make a bridge very easy (ActivityStreams over XMPP — inqlab)
Later on @pukkamustard mentions:
Of course there are a couple of generic ActivityPub servers in development. Among them rdf-pub by @naturzukunft (linkedopenactors / rdf-pub · GitLab)
Also worth mentioning ActivityPods (GitHub - activitypods/activitypods: Brings together two game-changing technologies, ActivityPub and Solid Pods, and empowers developers to create truly decentralized applications) and Bonfire (https://bonfirenetworks.org/)
(There’s also https://semapps.org)