Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Implement XMPP federation

Open
#631 34 comments 90 reactions 0 assignees View on GitHub

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

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

enhancement

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from wireapp/wire-server

All issues in wireapp/wire-server

Similar issues

More Haskell issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.