This is a work-in-progress implementation of a Threema Gateway client library in Rust.
Not everything is implemented yet, but sending simple and end-to-end encrypted messages works.
This library requires Rust 1.18+.
Sending
Encrypting
Lookup
Receiving
Files
Take a look at the examples in the examples/
directory to see how they're
implemented.
Lookup public key:
cargo run --example lookup_pubkey -- <our_id> <secret> <their_id>
Send simple transport-encrypted encrypted message:
cargo run --example send_simple -- <from> id <to-id> <secret> <text>...
cargo run --example send_simple -- <from> email <to-email> <secret> <text>...
cargo run --example send_simple -- <from> phone <to-phone> <secret> <text>...
Send e2e encrypted message:
cargo run --example send_e2e_text -- <from> <to> <secret> <private-key> <text>...
Look up Threema ID by phone:
cargo run --example lookup_id -- by_phone <from> <secret> 41791234567
Look up Threema ID by email hash:
cargo run --example lookup_id -- by_email_hash <from> <secret> 1ea093239cc5f0e1b6ec81b866265b921f26dc4033025410063309f4d1a8ee2c
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.