Presage
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:
- Configuration and secrets storage (using sled)
- Local encryption
- Registration
- SMS
- Voice call
- Link as secondary device from Android / iOS app (like Signal Desktop)
- Synchronize contacts from primary device
- Receive messages
- Download + decrypt attachments
- Send messages
- Groups support
Instructions
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.