-
Notifications
You must be signed in to change notification settings - Fork 0
Software list
A list of third-party libraries and clients for the Signal messenger.
See the diagram for how the software components connect with each other.
Software used by other software.
See also Notes on the official libraries below.
Library | Notes | Used by |
---|---|---|
libsignal-protocol-c |
Signal protocol libraries |
|
Signal service library |
||
"Platform-agnostic APIs useful for Signal client apps" |
Library | Notes | Used by |
---|---|---|
"This fork allows using the Signal servers without GCM and provides provisioning, i.e. linking devices, and some bugfixes." |
||
"signal-cli provides a commandline and dbus interface for signalapp/libsignal-service-java" |
List on project’s wiki. |
|
"signald is a daemon that facilitates communication over Signal" |
List in project’s readme. |
|
"TextSecure library and command line test client for Go" |
||
"A high-level library to write a client for the Signal Messenger written in Rust." |
||
"An unofficial .NET Standard library for communicating via Signal." |
||
"Client lib for libsignal-protocol-c. Implements the necessary interfaces using gcrypt and SQLite." |
Projects that are no longer maintained or are of more specialized use. (click to show)
Library | Notes |
---|---|
"Signal protocol implementation for Node.js based on libsignal-protocol-javascript." |
|
"A javascript library for basic interaction with the Signal messaging service, adapted from [Signal-Desktop]." |
|
"This repository is forked from WhisperSystem’s own libsignal-protocol-javascript by @liliakai, modified to support node and the browser." "THIS MODULE IS DEPRICATED" |
|
"A facade to make using the libsignal-service easy" |
|
"TextSecure library and command line test client for Go" |
End-user messenger interfaces.
Client | Notes | Uses |
---|---|---|
The official android client. |
||
The official iOS client. |
||
"Signal Desktop is an Electron application that links with Signal on Android or iOS." |
Client | Notes | Uses |
---|---|---|
"Axolotl is a complete cross-platform Signal client, compatible with the Ubuntu Phone and more." |
||
"Signal client for Sailfish OS" |
||
"Unofficial Signal client for the Universal Windows Platform" |
||
"A Rust-based signal app with a QML/Kirigami frontend" |
Unmaintained (click to show)
"Pyre-Qt is a desktop GUI for signald, an unofficial Signal daemon." |
||
"TextSecure client for the Ubuntu Phone" |
Client | Notes | Uses |
---|---|---|
"scli is a simple terminal user interface for Signal. It uses [signal-cli] and urwid." |
||
"A terminal gui for signal-cli, written in Go." |
||
"Signal Messenger client for terminal" |
Unmaintained (click to show)
"Curses-backed terminal interface for Signal using signal-cli and npyscreen." |
Multi-protocol interfaces (aka "gateways") that can be used in many clients / front-ends / chat programs.
Bridge | Notes | Uses |
---|---|---|
"A Matrix-Signal puppeting bridge" |
||
"A matrix-signal bridge that doesn’t require your own a matrix Homeserver" |
Older projects (click to show)
-
(Also): through one of [libpurple] bridges and matrix’s
libpurple
plugin
Bridge | Notes | Uses |
---|---|---|
"A libpurple/Pidgin plugin for signald (signal, formerly textsecure)." |
||
"A libpurple/Pidgin plugin for signal (formerly textsecure). Using modified parts of [signal-cli]" |
Bridge | Notes | Uses |
---|---|---|
"Pythonic XMPP gateways" |
||
"An XMPP/signal gateway." |
The signal protocol is implemented in the official XMPP extension (OMEMO). It does not talk to the signal network.
BitlBee gateway allows to connect any pidgin / libpurple plugin to IRC. Bridging with signal is possible through [libpurple-signald]. One blog post with an example of such usage.
-
Feature request on [signal-desktop] issue tracker.
-
https://github.com/asafonov/signal-irc "IRC to Signal gateway"
-
https://github.com/poppyschmo/znc-signal "An experimental ZNC module bringing Signal to IRC"
Bridge | Notes | Uses |
---|---|---|
"Forwards messages via SMS from and to instant messengers (Telegram, Signal,..) " |
Plugins for specific chat programs.
Plugin | Notes | Uses |
---|---|---|
Signal plugin for WeeChat. |
Software that makes use of the signal protocol, but does not use signal network.
- XMPP extension for axolotl protocol (OMEMO)
-
Official specs for 'communication between servers and "external" components over the Jabber network'
- Matrix’s Olm/Megolm
-
"An implementation of the Double Ratchet cryptographic ratchet in C++"
- Silence
-
"A fork of Signal with only SMS/MMS encryption."
- MaladaN
-
"An end to end encrypted Messenger that uses the signal protocol over the I2P network"
"Protocol" libraries implement only the signal protocol, including the double-ratchet encryption algorithm. They are more low-level than the "service" libraries, which have additional functionality to communicate with the signal servers.
See also: official documentation for the description of the protocol.
The official libraries are currently being consolidated in libsignal-client (see libsignal-client#152 and libsignal-client#392).
A discussion of the new libraries architecture with a comment from the main developer:
".. we went with a three-layer system for libsignal-client, where the “top” layer is the Java, Swift, and TypeScript interfaces; the “bottom” layer is the Rust implementation; and the “middle” layer defines “bridge” functions in Rust that can be called from the top layer."
https://community.signalusers.org/t/libsignal-client/28889/6
Signal [libsignal-client] obsoleted our own libsignal-protocol-rs effort. We are working on getting rid of libsignal-protocol-rs and putting that library as “archived” soon.
https://community.signalusers.org/t/lets-join-forces-deduplicating-ios-android-node-code-into-libsignal-client/31667
"libsignal-protocol-rs was finished a few weeks before Signal launched their signal-client replacement."
https://github.com/Michael-F-Bryan/libsignal-service-rs/issues/72#issuecomment-817810483
Official builds provided for: Windows, Mac and debian-based Linux (x64 processor).
"To use the Signal desktop app, Signal must first be installed on your phone."
There are unofficial ports of Signal-Desktop to other platforms and packaging methods, that do not modify the original source code: