~nicoco/slidge

XMPP gateway framework

77865c8 core: add --version CLI arg

~nicoco pushed to ~nicoco/slidge git

13 hours ago

55078fc core: add --version CLI arg

~nicoco pushed to ~nicoco/slidge git

14 hours ago

#Slidge πŸ›·

Home | Docs | Source | Issues | Patches | Chat

Turn any XMPP client into that fancy multi-protocol chat app that every cool kid want.

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 basic direct messaging and more "advanced" instant messaging features:

Presences¹ Typing² Marks³ Upload⁴ Edit⁡ React⁢ Retract⁷ Reply⁸ Groups⁹
Signal N/A βœ… βœ… βœ… N/A βœ… βœ… βœ… ~
Telegram βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ~
Discord ❌ βœ… N/A βœ… βœ… ~ βœ… βœ… ❌
Steam βœ… βœ… N/A ❌ N/A ~ N/A N/A ❌
Mattermost βœ… βœ… ~ βœ… βœ… βœ… βœ… ❌ ❌
Facebook ❌ βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌
Skype βœ… βœ… ❌ βœ… βœ… ❌ βœ… ❌ ❌
WhatsApp βœ… βœ… βœ… βœ… N/A βœ… βœ… βœ… ❌

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 for 1:1 chats. Group chat support is experimental.

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.

#pipx

Tagged releases are uploaded to pypi and should be installable on any distro with pipx.

pipx install slidge[signal]  # you can replace signal with any network listed in the table above
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