Skip to content

nanu-c/presage

 
 

Repository files navigation

Presage

CI Build License API Docs

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.

Features:

  • Local storage (using sled)
  • 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

Instructions

Add the following to your Cargo.toml:

[dependencies]
presage = { git = "https://github.com/whisperfish/presage" }
presage-store-sled = { git = "https://github.com/whisperfish/presage" }

and look at the generated Rust documentation of the Manager struct to get started.

Demo CLI

Included in this repository is a CLI very similar (on purpose) to the great signal-cli:

# print help section
cargo run -- --help

# link as secondary device, a PNG with a QR code to scan should open
cargo run -- link-device --device-name presage

# start receiving messages
cargo run -- receive

For using the library, the CLI is a good starting point to learn how the API can be used.

About

A high-level Rust library to help write clients for the Signal Messenger.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%