Metadata-Version: 2.1
Name: slidge
Version: 0.1.0a0
Summary: XMPP bridging framework
License: AGPL-3.0-or-later
Author: Nicolas Cedilnik
Author-email: nicoco@nicoco.fr
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: discord
Provides-Extra: facebook
Provides-Extra: mattermost
Provides-Extra: signal
Provides-Extra: telegram
Requires-Dist: ConfigArgParse (>=1.5.3,<2.0.0)
Requires-Dist: Pillow (>=8.1.0)
Requires-Dist: aiohttp (>=3.8.1)
Requires-Dist: aiosignald (>=0.2,<0.3); extra == "signal"
Requires-Dist: aiotdlib (>=0.19.2,<0.20.0); extra == "telegram"
Requires-Dist: mattermostdriver (>=7.3.2,<8.0.0); extra == "mattermost"
Requires-Dist: mautrix-facebook (>=0.4.0,<0.5.0); extra == "facebook"
Requires-Dist: nextcord (>=2.0.0-alpha.10,<3.0.0); extra == "discord"
Requires-Dist: pydantic; extra == "telegram"
Requires-Dist: qrcode (>=7.3)
Requires-Dist: slixmpp (>=1.8.2,<2.0.0)
Description-Content-Type: text/markdown

Slidge 🛷
========

[![Documentation status](https://readthedocs.org/projects/slidge/badge/?version=latest)](https://slidge.readthedocs.io/)
[![builds.sr.ht status](https://builds.sr.ht/~nicoco/slidge/commits/master/.build.yml.svg)](https://builds.sr.ht/~nicoco/slidge/commits/master/.build.yml?)

Pythonic XMPP gateways.

An XMPP component that provides a generic way to write XMPP ⟷ **legacy network**
gateways, based on [SliXMPP](https://slixmpp.readthedocs.io).

Homepage: [sourcehut](https://sr.hr/~nicoco/slidge)

Chat room:
[slidge\@conference.nicoco.fr](xmpp:slidge@conference.nicoco.fr?join)

Issue tracker: https://todo.sr.ht/~nicoco/slidge

Status
------

Slidge is not ready for production yet! Right now, only direct messages
are implemented, for Telegram, Signal and Facebook messenger. Please
test it locally and report bugs.

Installation
------------

The easiest way to try out slidge is with docker-compose. Clone the
repo, run `docker-compose up` and you should have:

-   an XMPP server (prosody) exposed on port 5222 with a registered user
    <test@localhost> (password: password)
-   3 gateway components (a dummy network, signal and telegram)
-   hot reloading of gateways on code change
-   signald running in a container (required for signal)

I recommend using gajim to test it. You can launch it with the -p option
to use a clean profile and not mess up your normal user settings and
such.

It is definitely possible to set up everything without docker, but note
that the aiotdlib package needs to be manually built (wheels from pypi
are incomplete unfortunately).

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

Related projects
----------------

-   [Spectrum](https://www.spectrum.im/)
-   [Bitfrost](https://github.com/matrix-org/matrix-bifrost)
-   [Mautrix](https://github.com/mautrix)
-   [matterbridge](https://github.com/42wim/matterbridge)
-   [XMPP-discord-bridge](https://git.polynom.me/PapaTutuWawa/xmpp-discord-bridge)


