~nicoco/slidge

XMPP gateway framework

482ac26 Add group chat support

~nicoco pushed to ~nicoco/slidge git

21 hours ago

d640f2e mucs

~nicoco pushed to ~nicoco/slidge git

21 hours ago

#Slidge ๐Ÿ›ท

Home | Source | Issues | Patches | Chat

Turn any XMPP client into that fancy multiprotocol chat app that every cool kid want.

Documentation status builds.sr.ht status Debian package pypi

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:

Presencesยน Typingยฒ Marksยณ Uploadโด Editโต Reactโถ Retractโท Replyโธ
Signal N/A โœ… โœ… โœ… N/A โœ… โœ… โœ…
Telegram โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Discord โŒ โœ… N/A โœ… โœ… ~ โœ… โœ…
Steam โœ… โœ… N/A โŒ N/A ~ N/A N/A
Mattermost โœ… โœ… ~ โœ… โœ… โœ… โœ… โŒ
Facebook โŒ โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Skype โœ… โœ… โŒ โœ… โœ… โŒ โœ… โŒ

This table may not be entirely accurate, but in theory, stuff marked โœ… works. N/A 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 beta-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.

Try slidge and give us some feedback, through the MUC, the issue tracker or in the public inbox. Don't be shy!

#Installation

#containers

Containers for arm64 and amd64 are available on docker hub.

#debian

Debian packages for bullseye (amd64 only for now, help welcome to support other architectures) are built on each push to master as artifacts of this build job.

A repo is maintained by IGImonster. To use it do this (as root):

# trust the repo's key
wget -O- http://deb.slidge.im/repo/slidge.gpg.key \
  |gpg --dearmor \
  |tee /usr/share/keyrings/slidge.gpg > /dev/null
# add the repo, replace 'release' with 'nightly' if you're feeling adventurous 
echo "deb [signed-by=/usr/share/keyrings/slidge.gpg] http://deb.slidge.im/repo/debian release main" \
  > /etc/apt/sources.list.d/slidge.list
# install
apt update && apt install slidge -y

Refer to the docs for information about how to use the provided systemd service files.

#pip

Tagged releases are uploaded to pypi.

pip install slidge[signal]  # you can replace signal with any network listed in the table above
python -m slidge --legacy-module=slidge.plugins.signal

If you're looking for the bleeding edge, download an artifact here.

#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