XMPP bridging framework
Project description
Slidge 🛷
Home | Source | Issues | Patches | Chat
Turn any XMPP client into that fancy multiprotocol chat app that every cool kid want.
Slidge is a general purpose XMPP (puppeteer) gateway framework in python. It's a work in progress, but it should make writing gateways to other chat networks (plugins) as frictionless as possible.
It comes with a few plugins included, implementing at least basic direct messaging and often more "advanced" instant messaging features:
⏻¹ | …² | ✓³ | 🗎⁴ | ✎⁵ | ☺⁶ | 🗑⁷ | ↵⁸ | |
---|---|---|---|---|---|---|---|---|
Signal | - | ✓ | ✓ | ✓ | - | ✓ | ✓ | ✓ |
Telegram | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Discord | ✗ | ✓ | - | ✓ | ✓ | ~ | ✓ | ✓ |
Steam | ✓ | ✓ | - | ✗ | - | ~ | - | - |
Mattermost | ~ | ✓ | - | ✓ | ✓ | ✓ | ✓ | ✗ |
✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Skype | ✗ | ✗ | ✗ | ~ | ✗ | ✗ | ✗ | ✗ |
(this table may not be entirely accurate, but in theory, stuff marked ✓ works)
NB: - means that the legacy network does not have an equivalent of this XMPP feature (because XMPP is better, what did you think?)
WARNING: you may break the terms of use of a legacy network and end up getting your account locked by using slidge. Refer to the keeping a low profile documentation page for more info.
Status
Slidge is alpha-grade software. Right now, only direct messages are implemented, no group chat stuff at all. Direct messaging does (more or less) work though. Any contribution whatsoever (testing, patches, suggestions, beer, …) is more than welcome. Don't be shy!
Testing locally should be fairly easy, so please go ahead and give me some feedback, through the MUC, the issue tracker or in my public inbox.
Installation
docker-compose
Docker-compose spins up a local XMPP server preconfigured for you., with a test@localhost
/ password
account
docker-compose up
For the other options, you need a configured XMPP server.
poetry
poetry install --extras signal # you can replace signal with any network listed in the table above
poetry run python -m slidge --legacy-module=slidge.plugins.signal
pip
pip install slidge[signal] # you can replace signal with any network listed in the table above
python -m slidge --legacy-module=slidge.plugins.signal
XMPP client
movim
If you used docker-compose, you should be able to use the movim client from your browser at http://localhost:8888
Unfortunately, the movim UI thinks that test@localhost
is not a valid JID and does not let you click
on the "Connect" button.
As a workaround, use your browser dev tools to inspect and modify the <input id="username"
in order to
remove the pattern="^[^...
attribute.
Then go to the Configuration/Account tab. You should be able to register to the slidge gateways from here.
Gajim
Install and launch gajim and add your XMPP account. Go to "Accounts"→"Discover services". You should see the slidge gateways as server components.
About privacy
Slidge (and most if not all XMPP gateway that I know of) will break end-to-end encryption, or more precisely one of the 'ends' become the gateway itself. If privacy is a major concern for you, my advice would be to:
- use XMPP + OMEMO
- self-host your gateways
- have your gateways hosted by someone you know AFK and trust
Related projects
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.