Implement XMPP federation
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 2.8k
- Forks
- 334
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 50
Description
I can't remember where or from who, but a few months ago I picked up a message that Wire wanted to implement federation between Wire servers.
I just want to give you guys a giant heads-up for the idea and meanwhile suggest using the XMPP protocol specifically for doing so. While it might seem a bit harder at first than just specifying your own custom protocol, XMPP is a very solid and extensible protocol with 20 years of R&D invested into it.
It's possible to cherry-pick extensions that make sense for Wire and there is a lot of tooling available for speaking XMPP ([1], [2], [3]) in Haskell.
As an added benefit, federating over XMPP allows all Wire users to chat with existing users on Jabber and to join existing public Jabber chat rooms. It would be an awesome step in the direction of an open federated chat network instead of a group of silo'd private solutions.
I'm sure if you have questions or doubts regarding this, there would be plenty of people with thorough knowledge on XMPP federation that are willing to help you out. ([1], [2], [3])
EDIT: some more thoughts can be found in this comment: https://github.com/wireapp/wire-server/issues/631#issuecomment-502490687
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the XMPP federation proposal and the additional thoughts linked in the issue, then review the Wire server architecture to identify relevant entry points. Done would require an agreed federation scope and implementation plan; the issue names no target files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- backend, distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100