41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
# Presage
|
|
|
|
![CI](https://github.com/whisperfish/presage/workflows/CI/badge.svg)
|
|
![License](https://shields.io/github/license/whisperfish/presage.svg)
|
|
|
|
A Rust library that helps building clients for the [Signal Messenger](https://signal.org/en/), using [libsignal-service-rs](https://github.com/whisperfish/libsignal-service-rs). It is designed to provide everything you need to get started.
|
|
|
|
> :warning: **The API is considered unstable** - I am still experimenting here.
|
|
|
|
Features:
|
|
|
|
- [x] Configuration and secrets storage (using [sled](https://github.com/spacejam/sled))
|
|
- [ ] Local encryption
|
|
- [x] Registration
|
|
- [x] SMS
|
|
- [x] Voice call
|
|
- [x] Link as secondary device from Android / iOS app (like Signal Desktop)
|
|
- [x] Synchronize contacts from primary device
|
|
- [x] Receive messages
|
|
- [x] Download + decrypt attachments
|
|
- [x] Send messages
|
|
- [x] Groups support
|
|
|
|
## Instructions
|
|
|
|
Included in this repository is a CLI very similar (on purpose) to the great [signal-cli](https://github.com/AsamK/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](./examples/cli.rs).
|