notify icon indicating copy to clipboard operation
notify copied to clipboard

feat(service): Add Signal support

Open blackandred opened this issue 2 years ago • 11 comments

Is your feature request related to a problem? Please describe. I'm using secure messengers - Signal and Matrix, I would like to have notifications there instead of have to use third, or fourth messenger.

Describe the solution you'd like I would like to send notifications to unencrypted Matrix channels (I know the encrypted ones may not be possible) and/or to Signal groups.

Shoutrrr has support for Matrix: https://containrrr.dev/shoutrrr/v0.5/services/matrix/ Apprise has support for both Signal and Matrix: https://github.com/caronc/apprise

blackandred avatar May 17 '22 05:05 blackandred

Leaving this here as a potential library for the Signal service implementation.

crossle/libsignal-protocol-go

nikoksr avatar Sep 28 '22 16:09 nikoksr

I'll take this one if that is okay?

arnocornette avatar Oct 01 '22 20:10 arnocornette

Is it good that I split this in two seperate branches/prs?

One for matrix and one for signal?

arnocornette avatar Oct 01 '22 20:10 arnocornette

@arnocornette yes please. That would definitely be preferable!

nikoksr avatar Oct 02 '22 07:10 nikoksr

Hi, @nikoksr since you did the Matrix service, could i take on the signal support?

KiptoonKipkurui avatar Oct 16 '22 11:10 KiptoonKipkurui

@KiptoonKipkurui sure thing! That would be highly appreciated. Want me to assign you to this issue?

nikoksr avatar Oct 19 '22 05:10 nikoksr

Is this being worked on? If not, I would like to offer some help.

ppmdo avatar Mar 11 '23 11:03 ppmdo

Hi @ppmdo, thanks for your interest in helping the project out! Signal is currently not being worked on but it's definitely one of those services we're desperately waiting for! Your contribution would be more than welcome.

The problem so far has been the lack of up-to-date and well maintained client libraries; have you looked into that yet? The most promising client library that I could find is RTann/libsignal-go.

nikoksr avatar Mar 14 '23 12:03 nikoksr

Hey @ppmdo and @nikoksr,

I had a look at this a while ago.. From what I intially saw (and remember) the community client libraries aren't well maintained. Signal does have a libsignal repository, however this does not seem to support Go.

The routes I saw when looking into were using cgo (does this work with rust?) or implemenenting a Go only implementation of the client library.

arnocornette avatar Mar 14 '23 12:03 arnocornette

@arnocornette thanks for your input on this! That's exactly how I see the situation with Signal and why we haven't implemented it ourselves yet.

Regarding your rust cgo compatibility question; there seems to be a way but from what I can tell it would require the libsignal Rust implementation to export the necessary functions to make them callable for us. An amazing article on this can be found here. @FiloSottile I hope you don't mind if I throw you into this mix. Maybe you could quickly give us your 2c whether this is a reasonable approach or not.

Also, there's this comment in the official libsignal library describing a potential solution where we could call the C part of their Swift implementation.

Most likely we all agree that cgo this is a very unpreferable solution all together though. An official or at least actively maintained Go library would be much prefered. But also, unless you want to do this yourself @arnocornette or @ppmdo, I don't see a way of us having the capabilities of actively maintaining our own libsignal implementation.

nikoksr avatar Mar 14 '23 13:03 nikoksr

Thanks for the detailed explanations. I do agree that we need and official or maintained Go library to implement this. So I guess in the meantime we should put this on hold.

Based on the comment you linked, looks like it's not on the official roadmap. Maybe the best way forward is to wait for this one to be stable https://github.com/RTann/libsignal-go.

ppmdo avatar Mar 14 '23 14:03 ppmdo