A Rust library that helps building clients for the Signal Messenger, using libsignal-service-rs. It is designed to provide everything you need to get started.
⚠️ The API is considered unstable - I am still experimenting here.
Features:
- Local storage (using sled)
- Registration/linking
- Contacts
- Messages
- Local encryption (using matrix-sdk-store-encryption)
- Registration
- SMS
- Voice call
- Link as secondary device from Android / iOS app (like Signal Desktop)
- Synchronize contacts from primary device
- Receive messages
- Handle groups v2 (and change events)
- Download + decrypt attachments
- Send messages
- Groups support
Included in this repository is a CLI very similar (on purpose) to the great signal-cli:
# print help section
cargo run --example=cli -- --help
# link as secondary device, a PNG with a QR code to scan should open
cargo run --example=cli -- link-device --device-name presage
# start receiving messages
cargo run --example=cli -- receive
For usage of the library, a few examples are included under the examples/
directory, and most features are demonstrated
in examples/cli.rs.