Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(service): Add Signal support #283

Open
blackandred opened this issue May 17, 2022 · 11 comments
Open

feat(service): Add Signal support #283

blackandred opened this issue May 17, 2022 · 11 comments
Labels
affects/services Issue or PR related to a notification service. good first issue Good for newcomers help wanted Extra attention is needed type/feature New feature or request up for grabs

Comments

@blackandred
Copy link

blackandred commented May 17, 2022

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 blackandred added the type/feature New feature or request label May 17, 2022
@nikoksr nikoksr added help wanted Extra attention is needed good first issue Good for newcomers affects/services Issue or PR related to a notification service. up for grabs labels Sep 8, 2022
@nikoksr nikoksr changed the title Matrix or Signal support feat(service): Add Matrix and/or Signal support Sep 8, 2022
@nikoksr
Copy link
Owner

nikoksr commented Sep 28, 2022

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

crossle/libsignal-protocol-go

@arnocornette
Copy link
Contributor

I'll take this one if that is okay?

@arnocornette
Copy link
Contributor

arnocornette commented Oct 1, 2022

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

One for matrix and one for signal?

@nikoksr
Copy link
Owner

nikoksr commented Oct 2, 2022

@arnocornette yes please. That would definitely be preferable!

@nikoksr nikoksr changed the title feat(service): Add Matrix and/or Signal support feat(service): Add Signal support Oct 10, 2022
@KiptoonKipkurui
Copy link

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

@nikoksr
Copy link
Owner

nikoksr commented Oct 19, 2022

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

@ppmdo
Copy link

ppmdo commented Mar 11, 2023

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

@nikoksr
Copy link
Owner

nikoksr commented Mar 14, 2023

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.

@arnocornette
Copy link
Contributor

arnocornette commented Mar 14, 2023

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.

@nikoksr
Copy link
Owner

nikoksr commented Mar 14, 2023

@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.

@ppmdo
Copy link

ppmdo commented Mar 14, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects/services Issue or PR related to a notification service. good first issue Good for newcomers help wanted Extra attention is needed type/feature New feature or request up for grabs
Projects
None yet
Development

No branches or pull requests

5 participants