Inofficial Rust Implementation of the Threema Protocols

This will be a library and tools for the Threema Messaging APIs, to make the service compatible with non mobile phone users (e.g. as desktop app, or bridge to Matrix or XMPP). For account registration, the official mobile app or a license purchased in the Threema Store is needed. Please do not abuse this as a replacement for their paid Threema Gateway service.

work in progress.

Thanks

Usage

When ready, this will be a rust library crate threema_client and API doc will be there. Also the bunch of experimental binaries can be used.

Currentliy, accounts are saved plaintext json and can be generated with the register/load programs.

Examples / Binaries: - creating account JSONs: - register.py Use a license key to register an identity - load_safe: Download and decrypt Threema-Safe Backup - load_idbackup: Decrypt ID-Backup - blobs: - getblob get (and optionally delete) a Blob - putblob upload a Blob - connect: frequently changing test program: connect to account and print messages - planned: chatwith: commandline chat with a single peer / group

License

As I heavily looked into Threema for Android, this protocol port is licensed under the GNU Affero General Public License v3 aswell.

Threema Protocol Library
Copyright (C) 2021 thejonny

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.