Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Slidge logo

woodpecker CI status coverage Chat

Slidge is an XMPP (puppeteer) gateway library in python. It makes writing gateways to other chat networks (legacy modules) as frictionless as possible. It supports fancy IM features, such as (emoji) reactions, replies, and retractions. The full list of supported XEPs in on xmpp.org.

Status

Slidge is beta-grade software. It support groups and 1:1 chats. Try slidge and give us some feedback, through the MUC or the issue tracker. Don't be shy!

Usage

A minimal (and fictional!) slidge-powered "legacy module" looks like this:

from cool_chat_lib import CoolClient
from slidge import BaseGateway, BaseSession
from slidge.contact import LegacyContact
from slidge.group import LegacyMUC
from slidge.db import GatewayUser
from slidge.util.types import XMPPMessage


class Gateway(BaseGateway):
    # Various aspects of the gateway component are configured as class
    # attributes of the concrete Gateway class
    COMPONENT_NAME = "Gateway to the super duper chat network"


class Session(BaseSession):
    async def login(self, user: GatewayUser) -> None:
        self.legacy_client = CoolClient(
            login=user.legacy_module_data["username"],
            password=user.legacy_module_data["password"],
        )
        await self.legacy_client.login()


class Contact(LegacyContact):
    async def on_message(self, msg: XMPPMessage) -> str:
        """
        Triggered when the slidge user sends an XMPP message through the gateway
        """
        sent = self.session.legacy_client.send_message(
            text=text, destination=self.legacy_id
        )
        return str(sent.message_id)

There's more in the tutorial!

Installation

⚠️ Slidge is a lib for gateway developers, if you are an XMPP server admin and want to install gateways on your server, you are looking for a slidge-based gateway. or the slidge-debian bundle.

pypi version

Packaging status

Slidge is available on codeberg and pypi. Refer to the docs for details.

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

Thank you, Trung, for the slidge logo!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slidge-0.5.0a0.tar.gz (576.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slidge-0.5.0a0-py3-none-any.whl (210.9 kB view details)

Uploaded Python 3

File details

Details for the file slidge-0.5.0a0.tar.gz.

File metadata

  • Download URL: slidge-0.5.0a0.tar.gz
  • Upload date:
  • Size: 576.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for slidge-0.5.0a0.tar.gz
Algorithm Hash digest
SHA256 63e52d96c4bac5569f86054ac06e20b88de917505ad9e2520131c800c010bcd7
MD5 49d5975c3be345c8df4695217fa11c53
BLAKE2b-256 815b76357468ff5aaabced4e9496caed68cf24335f2f64d5ca967ab53f8c78fa

See more details on using hashes here.

File details

Details for the file slidge-0.5.0a0-py3-none-any.whl.

File metadata

  • Download URL: slidge-0.5.0a0-py3-none-any.whl
  • Upload date:
  • Size: 210.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for slidge-0.5.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 40584abbf24faf475b67c3aa466caebb4c110aa199c5d2072002f76677b0aff8
MD5 d59b91a9ee06a2e021e5749f7b3e06db
BLAKE2b-256 43f5d61b00e07204faf01d7793d33a663a3904f735a9c269f47c7db38f72d496

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page