At the end of last year, I (nicoco) submitted a proposal to NLNet for funding the support of XEP-0503 (Server-side spaces) in Matridge, an XMPP/Matrix gateway. It was accepted recently, yoohoo!
It took longer than expected to get an answer; as a consequence, since the initial proposal, the landscape has changed a little bit, mostly two important things:
- Movim, an XMPP web client implemented initial support for spaces ā 1 we now have a client to test our implementation against;
- WhyNotHugo submitted a lot of fixes and features for matridge (and even slidge core), effectively promoting him to co-maintainer.
Movim, a client implementation of spaces
We now have a client to test our implementation against, which is great! It will be more work than just implementing the protocol, because the real world being imperfect as it is, this will surely lead to discovering more bugs on our side and Movim's⦠but that's a good thing! This is the way to get to something truly usable, and will benefit the broader XMPP ecosystem.
Spaces, but generic ones
The plan was always to implement spaces in a generic way in the slidge API, and have Matridge use this API. This generic API is meant to be used to support Mattermost Teams in matteridge, WhatsApp Communities in slidge-whatsapp, Discord servers in slidcord, and any other chat network where the concept of "collection of rooms" maps nicely 2. I did not dare mention the awful absolutely-not-open walled gardens in the initial funding request, but after discussion with NLNet folks, it turns out support for spaces in other gateways can be included as subtasks of that funding. 3 The main deliverable stays spaces support in Matridge, but developing the other gateways in parallel will ensure the slidge spaces API is generic enough to cover different variations of the concept.
The plan
At a high level, the plan has two major milestones.
v0.4: "read-only" spaces support
Slidge and Matridge v0.4.0 releases will support "reading" spaces. This implies:
- listing the spaces you are are part of;
- listing the rooms in a space (its content);
- reading what the space is about (its metadata);
- being notified if a new room is added to a space.
v0.5: space administration support
Slidge and Matridge v0.5.0 releases will support administration spaces. This implies:
- creating a space;
- modifying the metadata of a space;
- modifying the content of a space.
The funding also comes with a security audit, so this will be fun to try and answer to.
Acknowledgments
Thank you NLNet people for funding projects that try to build a better internet! ā„ Computers do not have to be used for evil.
-
Yes, this is an emdash, it is mapped to the sequence "menu-dash-dash" on my keyboard. :oP ↩
-
Telegram "Forums/Topics" are already supported as XMPP threads, which they map closely to; unfortunately XMPP client support for threads is very rare ATM. ↩
-
We believe that having functional gateways to other chat networks, even closed ones, does not hinder XMPP adoption ā but we are aware that not everyone share that view. ↩