Implement XMPP federation
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- haskell
- Domain
- backend, distributed-systems, networking
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.
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
- Dominant language
- Haskell
- Stars
- 2.8k
- Forks
- 332
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 49
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
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.
More from wireapp/wire-server
-
Difficulty 1/5 Under an hour Newbie friendliness 83/100
wireapp/wire-server#5632 ·
Maintainers usually reply within 2 days
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
wireapp/wire-server#5443 · 1 comment ·
Maintainers usually reply within 2 days
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
wireapp/wire-server#5315 · 4 comments · 1 reaction ·
Maintainers usually reply within 2 days
-
Dependency DashboardOpen
Difficulty 5/5 Over a week Newbie friendliness 20/100
wireapp/wire-server#4754 ·
Maintainers usually reply within 2 days
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
wireapp/wire-server#4613 ·
Maintainers usually reply within 2 days
All issues in wireapp/wire-server
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
MorphRule, DataizeRule and ContextualizeRule silently accept unknown YAML keys, unlike rewrite `Rule`Possibly taken @renyamamoto2026-cmyk claimed this 1 day ago. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
objectionary/phino#2107 ·
Maintainers usually reply within 1 day
-
30-minutes algorithm any-language codewars dart easy elixir hackerrank hacktoberfest haskell help wanted interview-prep julia leetcode lua open-source r scala students zig
Difficulty 2/5 Under an hour Newbie friendliness 88/100
Huerte/algo-solutions-python#124 ·