[HN Gopher] Slidge - XMPP bridges
       ___________________________________________________________________
        
       Slidge - XMPP bridges
        
       Author : zaik
       Score  : 78 points
       Date   : 2022-09-04 14:57 UTC (2 days ago)
        
 (HTM) web link (nicoco.fr)
 (TXT) w3m dump (nicoco.fr)
        
       | AndyMcConachie wrote:
       | As someone who runs a prosody server and also has to maintain
       | accounts on other platforms I really like this. I'm going to keep
       | an eye on this project and maybe at some point in the future once
       | other people have worked out the kinks I'll take a dive into it.
       | 
       | This looks really ambitious and I hope it succeeds. My main
       | concern is that it's swimming upstream against intrenched
       | monopolies guarded by wealthy assholes. And experience has taught
       | me that's not a recipe that leads to interoperability.
        
         | nicoco wrote:
         | For signal, telegram and mattermost, I am not too worried since
         | their protocols are documented. Matrix support is planned and
         | should not be too much of a problem either.
         | 
         | About the full-proprietary platforms like messenger and discord
         | that are actively against alternative client implementations,
         | it's probably going to be hard to keep this working by myself.
         | I chose to rely on 3rd party libs for this very reason. But
         | even if these slidge plugins break, I'm still happy to use my
         | XMPP clients for the more or less opened networks.
        
       | edhelas wrote:
       | Hi, Movim developer here https://movim.eu/
       | 
       | I'm really happy to finally see some modern bridging features
       | integrated with XMPP and compatible with the latest standard
       | (reactions, quotes, status...) !
        
         | nicoco wrote:
         | And I'm really happy there is one client I can use these
         | features with.
        
       | SamWhited wrote:
       | This is great! I've been using Conversations as my main chat
       | client bridged to IRC and my phone number (using jmp.chat for
       | phone and disroot.org or jmp's IRC bridges) for a while, but I
       | can imagine phone and IRC aren't generally the ones most people
       | want. Having more bridges will be really nice!
        
         | nicoco wrote:
         | Thanks for the kind words. So, you use Conversations for SMSes
         | too? The SIM card in your phone is just a mobile internet
         | thing, you don't actually use it to make calls? I'm curious
         | about your usage. :)
        
           | zie wrote:
           | jmp.chat is awesome, that's def. what I use for this. I am
           | deaf, so I don't ever make voice calls, but I use the SMS/MMS
           | features of JMP.chat and am happy.
        
       | EFruit wrote:
       | wrt. Discord and their stance on "self-bots", what is the
       | demarcation point between their (web) app and my computer?
       | 
       | Is using a screen reader a self-bot? Is a non-screen reader
       | Firefox add-on that uses the API a self-bot? What if I write an
       | add-on that keeps track of Discord-specific state via it? What if
       | that add-on exposes an API to read my DMs? What if it exposes an
       | API to send them?
        
         | nicoco wrote:
         | "self-bot" is a weird name for alternative clients in the first
         | place. Preventing spam is obviously their justification for
         | being so strict about it.
         | 
         | I believe screen readers are OK, but a Firefox add-on using API
         | calls would be considered against their ToS.
        
       | nicoco wrote:
       | Oh, that's my little project. I planned on doing a show HN in a
       | few days or so, but someone was faster than me. I'm happy to
       | answer any question.
       | 
       | Slidge even has a hackernews plugin, to be notified of replies to
       | your comments and to re-reply from you XMPP client. ;)
        
         | jaimehrubiks wrote:
         | wow, that's super cool!
        
       | Semaphor wrote:
       | Very cool, I'll have to try this out with my prosody server. I'd
       | use it for Facebook (after a long break, FB will be back in my
       | XMPP network :D), Signal, and maybe Telegram. Does anyone know if
       | any of those have issues with alternative clients?
        
         | nicoco wrote:
         | Facebook does not like alternative clients, but this workaround
         | [1] worked for me. Signal is OK, and Telegram actually
         | encourages writing alternative clients [2]. I'm happy to assist
         | setting it up, come say hi on our MUC.
         | 
         | [1]
         | https://slidge.readthedocs.io/en/latest/user/low_profile.htm...
         | 
         | [2] https://tdlib.github.io/td/
         | 
         | [3] xmpp:slidge@conference.nicoco.fr?join
        
           | Semaphor wrote:
           | I saw that page, but actually missed the note as it got
           | filtered by my brain's adblocker ;)
           | 
           | And thanks, it won't be till next week as I'm at a festival
           | this weekend, but I already joined (this might be my first
           | XMPP MUC since around 2008) :)
        
       | igorkraw wrote:
       | What is the relationship of this to Matrix, which also has
       | bridges?
        
         | nicoco wrote:
         | It's unrelated, except for the fact that I used the reverse
         | engineering of the facebook messenger protocol by the mautrix
         | team [1]. XMPP has had bridges more or less from the start. [3]
         | 
         | I may add a "matrix plugin" [2] if I feel like it someday, but
         | probably after I implement group chat support. Then you'll be
         | able to use XMPP<->Matrix<->some-other-thing for extra over-
         | engineering points. ;)
         | 
         | I prefer XMPP because it's lighter on resources, server-wise at
         | least, and it's managed through a democratic process, which has
         | it upsides and downsides. As someone I like said "democracy is
         | boring, dictatorship works faster".
         | 
         | [1] https://github.com/mautrix/facebook
         | 
         | [2] https://todo.sr.ht/~nicoco/slidge/27
         | 
         | [3] https://xmpp.org/extensions/xep-0100.html
        
           | Arathorn wrote:
           | fwiw, Matrix is also a democratic process:
           | https://spec.matrix.org/proposals/#process. (As much as i'd
           | love to be a dictator :P)
        
             | nicoco wrote:
             | I did not know that, I gotta edit a bunch of replies now,
             | thanks for correcting me.
             | 
             | To be fair, one of the reason I use XMPP and not matrix is
             | that I didn't hear about matrix until after I managed to
             | set up my own server and get some of my entourage to use it
             | too, about 5 years ago or so. Interoperability is the
             | important part anyway, and I'll work on slidge-matrix when
             | I fix/improve some stuff in the existing core/plugins.
        
               | Arathorn wrote:
               | tbh Matrix was pretty green 5 years ago, so you probably
               | didn't miss much. Thanks for considering a slidge-matrix
               | bridge. On the Matrix side, we already have
               | https://github.com/matrix-org/matrix-bifrost as our main
               | Matrix<->XMPP bridge, but it could definitely be better,
               | and the more interop between open protocols the better
               | \o/ :)
        
             | remram wrote:
             | That's great! Who votes?
        
       | upofadown wrote:
       | List of systems this currently works with:
       | 
       | * Signal
       | 
       | * Telegram
       | 
       | * Discord
       | 
       | * Steam
       | 
       | * Mattermost
       | 
       | * Facebook
       | 
       | * Skype
        
         | ephbit wrote:
         | Threema?
        
           | nicoco wrote:
           | Probably someday? https://todo.sr.ht/~nicoco/slidge/1
        
             | e12e wrote:
             | Did you look at/consider zulip? Using it at work now, and
             | miss a simple/irc-like cli client (there's an official
             | client that runs in the terminal - but it's more of a TUI
             | than a weechat-work-a-like. However their python Api is
             | nice enough that one can almost just use that. But maybe
             | only for writing - not full participation in
             | conversations... :)
        
               | nicoco wrote:
               | Nope, didn't know about it. At first glance, it looks
               | like the pypi package is for sending messages only. Since
               | it's all open source, I guess it should not be too much
               | work to get a slidge-zulip plugin working.
               | 
               | Feel free to open a ticket about it in slidge's todo.
               | 
               | https://todo.sr.ht/~nicoco/slidge
               | 
               | https://slidge.readthedocs.io/en/latest/dev/tutorial.html
        
               | tabbott wrote:
               | Correction: The Zulip Python bindings can be used for any
               | API endpoint. See https://zulip.com/api/rest. We'll fix
               | https://pypi.org/project/zulip/, which apparently doesn't
               | link there.
               | 
               | https://github.com/zulip/python-zulip-
               | api/tree/main/zulip/in... has a few bridges similar to
               | what you're building that may be helpful references; the
               | Zephyr one is the most sophisticated and the Matrix one
               | is about to be rewritten
               | (https://github.com/zulip/python-zulip-api/pull/765), so
               | those may be useful resources.
        
               | nicoco wrote:
               | Thanks for the information! I added this to my tracker
               | then. Not sure I'll work on it soon, but at least the
               | relevant links you gave me are stored somewhere easy to
               | find now.
               | 
               | https://todo.sr.ht/~nicoco/slidge/46
        
       | sylware wrote:
       | If I recall properly, a new EU directive requires interop for
       | discord/whatsapp/etc. But it does not solve the account creation
       | issue.
        
         | nicoco wrote:
         | Someone mentioned this directive on slidge's MUC* yesterday,
         | but I haven't looked into it too much yet. I guess slidge's
         | plugins should be easier to maintain once this is directive is
         | in application. I should focus on improving slidge's core more
         | then.
         | 
         | * xmpp:slidge@conference.nicoco.fr?join
        
           | sylware wrote:
           | This is a very shy attempt at, finally, regulate big tech:
           | interop with protocols which are stable in time and simple
           | enough to do a good enough job. Big tech dreads something
           | that would disable software/network protocols planned
           | obsolescence (it is much less true for hardware), don't
           | forget, those ppl are scammers: if they cannot "embrace and
           | extend" anymore...
           | 
           | In their directive, they forgot noscript/basic (x)html
           | interop, and for the messaging protocols, the account
           | creation which is actually a big issue.
        
         | jamesrr39 wrote:
         | I didn't know about this, and was curious about it, so went to
         | look it up. It's part of the Digital Markets Act:
         | 
         | > ... EU lawmakers agreed that the largest messaging services
         | (such as Whatsapp, Facebook Messenger or iMessage) will have to
         | open up and interoperate with smaller messaging platforms, if
         | they so request.
         | 
         | Small nitpick, while it would definitely apply to Whatsapp (it
         | is mentioned by name in the press release), I am not sure if
         | this applies to Discord? IIRC it is not a "gatekeeper".
         | 
         | Gatekeeper definition from press release:
         | 
         | > market capitalisation of at least 75 billion euro or an
         | annual turnover of 7.5 billion. To be designated as
         | "gatekeepers", these companies must also provide certain
         | services such as browsers, messengers or social media, which
         | have at least 45 million monthly end users in the EU.and 10 000
         | annual business users.
         | 
         | Full press release:
         | https://www.europarl.europa.eu/news/en/press-room/20220315IP...
        
       | dewey wrote:
       | I used to have a similar setup to use IRC for everything using
       | https://www.bitlbee.org. Fun times!
        
         | nicoco wrote:
         | This seems to still be actively developed and has a quite a lot
         | of people still using it. I think there is some value from XMPP
         | over IRC, but hey, whatever worked for you is cool. What do you
         | use now?
         | 
         | https://xkcd.com/1782/
        
           | dewey wrote:
           | I was very happy to see multiple releases in 2022 too! I have
           | to admit that I don't use anything cool like that any more as
           | I'm rarely on IRC and all the instant messengers kinda went
           | away or got too closed down to be used with services like
           | that.
        
       | Wowfunhappy wrote:
       | This is cool! I've looked into setting up Matterbridge before,
       | but as far as I can tell it can't do what I actually want--chat
       | on Slack/Discord/Whatsapp from my existing XMPP client, without
       | anyone on those services _knowing_ I'm using an XMPP client.
       | 
       | I would need group messaging to work, however. Looking forward to
       | that potentially becoming possible some day!
        
         | MattJ100 wrote:
         | How do you think they would know you are using an XMPP client?
        
           | Wowfunhappy wrote:
           | What I mean is, when I type in my XMPP client, I want someone
           | in e.g. Discord to see:                   [Wowfunhappy]
           | "hello world"
           | 
           | And not:                   [TransportBot] "Wowfunhappy: hello
           | world"
        
             | MattJ100 wrote:
             | The TransportBot approach is how things like Matterbridge
             | work. Slidge uses a different approach where your XMPP
             | address is translated to your identifier on the third-party
             | platform.
        
               | Wowfunhappy wrote:
               | Exactly! That's why I've never set up Matterbridge, and I
               | think Slidge sounds great!
        
         | nicoco wrote:
         | Author here, thanks for your comment, "cool" is what I aim at.
         | 
         | >without anyone on those services knowing I'm using an XMPP
         | client
         | 
         | Slidge acts in a way that (should) make it impossible for your
         | contacts to know you are not using the official app. However,
         | since some services are OK with alternative clients, Slidge
         | does not necessarily tries to hide its "identity". For services
         | that are less tolerant about it, I wrote a quick documentation
         | page with advice about how to avoid triggering their "security"
         | alerts (mostly because they'll see connecting from a data
         | center, unless you host at home):
         | https://slidge.readthedocs.io/en/latest/user/low_profile.htm...
         | 
         | Group messaging is definitely the next big feature I want in
         | Slidge. There were part of Slidge's first iteration, but I
         | decided to postpone them since it was too ambitious for a
         | start. I really want direct messages to work well, and the code
         | to be maintainable enough before I (re)implement groups. You
         | can help by setting up slidge on your server and bug reporting.
         | ;)
        
       | sneak wrote:
       | By being accessible on these unsafe, unencrypted services, you
       | increase their value and increase their attractiveness to your
       | friends and family and associates.
       | 
       | If you believe that private communications are important, you
       | should delete your account on unencrypted services (iMessage,
       | Discord, Telegram, Instagram, Facebook, etc) so that you are not
       | reachable at all via these methods.
       | 
       | Otherwise you personally serve as the honey in the surveillance
       | trap.
        
         | nicoco wrote:
         | Slidge can be used to bridge XMPP and signal, and I'm actually
         | more motivated to keep it working with relatively open services
         | like signal than with services from Big Ad.
         | 
         | I personally think XMPP is superior to signal, being
         | decentralised and with an open governance. For instance, I've
         | not yet seen some cryptocurrency crap being pushed at me on the
         | XMPP side, which I very much enjoy. I wish everybody moved to
         | XMPP, but apparently it's not going to happen anytime soon, so
         | in the meantime, I'll try to contribute to making XMPP the best
         | instant messaging network. When everyone moves to XMPP, then
         | slidge will have no reason to exist anymore, and my evil plan
         | will have succeeded.
        
         | jrm4 wrote:
         | This is deeply terrible and naive advice and should be mostly
         | ignored, even (especially) if you agree with the underlying
         | idea. This sort of absolutism doesn't help the problem at all.
         | 
         | Better to consider second order effects. People have lives to
         | live, and connecting with people is the most important thing.
         | You'll actually help more if you DO stay connected and, over
         | time, let them know and offer to help with using a diverse
         | range of communications technology over time.
         | 
         | I've been faced with this choice, more or less, and (in my
         | case) NOT choosing to be a stickler about it (and joining up
         | with people on Discord) has opened up my and their worlds quite
         | a bit.
         | 
         | This is a special case. Which is to say, it's weird that the
         | technology you're trying to get rid of or improve at present
         | still might be the best tool to get it done, but hey.
        
         | Wowfunhappy wrote:
         | I have a life to live. My friends and family and coworkers use
         | Slack and Discord and iMessage, so I need to be available there
         | for them.
        
           | spicybright wrote:
           | Agreed. I actually think the opposite of GP too. If you want
           | people to transition from proprietary services, you need to
           | ease them into it over time. If you make something truly more
           | valuable without the downside of "jumping ship", people will
           | come.
           | 
           | Just using XMPP alone is a slight upgrade from those services
           | either way TBH
        
           | sneak wrote:
           | My friends and family and coworkers installed Signal to talk
           | to me.
           | 
           | Someone who won't install a trivial and safe free app to
           | maintain connection with you is perhaps not as valuable a
           | connection as one might think.
           | 
           | I also have a life to live, and it is important to me that
           | living that life does not make the world more dangerous for
           | myself, my loved ones, and others in society. Surveillance
           | systems do that, so I don't use them.
        
             | firstcommentyo wrote:
             | I agree but I'm confused how you can use Signal in the same
             | sentence then.
             | 
             | Reminds me at duckduckgo: makes claims and builds big
             | branding about security but nobody (including me) ever
             | questioned them. (Regarding article not at hand but of
             | course also on HN.)
             | 
             | The first question I would ask: how does Signal finances
             | itself when the service is practically "free"...
             | 
             | For the rest I totally agree: I could also convince some
             | for XMPP/Jabber while at the same time it lets me question
             | my relationship to those I couldn't move. I mean it's not
             | that these days you couldn't install a second app if you
             | already have 50 useless i.e. "coupon" apps installed
             | anyway.
        
               | sneak wrote:
               | Signal is a nonprofit that depends on donations.
        
               | nicoco wrote:
               | > I mean it's not that these days you couldn't install a
               | second app if you already have 50 useless i.e. "coupon"
               | apps installed anyway.
               | 
               | Don't get me started on this. It saddens me to see so
               | much resistance from a lot of my friends that don't even
               | want to try a tiny, privacy-friendly, open-source, non-
               | battery consuming app when they have like 50 attention-
               | stealing spyware apps installed on their phone. Marketing
               | works scandalously well.
        
             | nicoco wrote:
             | >Someone who won't install a trivial and safe free app to
             | maintain connection with you is perhaps not as valuable a
             | connection as one might think.
             | 
             | That's a pretty radical stance and I respect it.
             | 
             | However, I consider that keeping in touch with people that
             | don't get why they shouldn't use Meta or Google is actually
             | more productive than bubbling myself in a hacktivist
             | bubble. I actually have more chance to get them interested
             | in mass surveillance concerns by keeping in touch than by
             | ghosting them.
        
               | sneak wrote:
               | I'm not an activist. I simply wish to not make the world
               | worse via my own direct actions.
               | 
               | Using surveillance platforms makes the world worse, so I
               | don't.
        
               | nicoco wrote:
               | Arguably, calling other human beings "non valuable
               | connections" does not make the world a better place
               | either.
        
       | pabs3 wrote:
       | Reminds me of the JMP gateway between SMS and XMPP and the
       | biboumi gateway between IRC and XMPP.
       | 
       | https://jmp.chat/ https://biboumi.louiz.org/
       | 
       | Edit: also cheogram https://cheogram.com/
        
         | nicoco wrote:
         | It's actually closer to spectrum2 in how it behaves. I hope
         | slidge will get as rock-solid as biboumi is!
         | 
         | https://spectrum.im/
        
       ___________________________________________________________________
       (page generated 2022-09-06 23:01 UTC)