#threema #client #api #user #transport #protocols #account

bin+lib threema-client

非官方的 threema 客户端实现和工具

1 个不稳定版本

0.1.0 2021 年 9 月 27 日

#4#threema

AGPL-3.0-only

52KB
1K SLoC

非官方的 Threema 协议 Rust 实现

这将是一个 Threema 消息 API 的库和工具,以使服务与非手机用户兼容(例如作为桌面应用程序或 Matrix 或 XMPP 的网桥)。账户注册需要官方移动应用程序或 Threema Store 中购买的许可证。请勿将其用作其付费 Threema 网关服务的替代品。

正在进行中。

  • 将主程序拆分为库和示例
  • 账户导入
    • threema 安全
    • id 备份
    • 将独立二进制文件转换为库
  • 基本的 threema 传输
    • 登录
    • 接收/发送帧
    • 解码/编码框中消息
  • 连接代理
    • 连接断开时重新连接
    • 保持活动回声
    • 接收事件流
    • 发送消息
      • 处理确认
      • 在连接断开时保持消息
  • 目录 API
    • 查找公钥 (identity/<ID>)
    • 身份/获取批量
    • 注册(Python 中的 POC 完成)
    • 自己的账户信息 identity/fetch_priv
    • 链接电子邮件/电话
    • 搜索联系人
    • 功能掩码
    • 撤销
    • ...
  • blob API
  • 流式传输支持以减少内存并提供进度
  • VOIP 信令:将任意 webrtc 提供的/响应的网桥连接到任何使用 webrtc 的其他网络将会很棒。
  • 当可用时发布 crate
  • 发布 rustoc
  • 取消 tokio 化的 threema 协议传输(使其能够在没有大量依赖项和同步代码的情况下使用)

感谢

用法

当准备好时,这将是 threema_client 的 rust 库,并且将提供 API 文档。还可以使用大量的实验性二进制文件。

目前,账户以明文JSON格式保存,可以使用注册/加载程序生成。

示例 / 二进制文件

  • 创建账户JSON
    • register.py 使用许可证密钥注册身份
    • load_safe:下载并解密Threema-Safe备份
    • load_idbackup:解密ID-Backup
  • blob
    • getblob 获取(可选删除)Blob
    • putblob 上传Blob
  • connect:频繁变化的测试程序:连接到账户并打印消息
  • 计划:chatwith:与单个对等方/群组进行命令行聊天

许可证

由于我深入研究Threema for Android,此协议端口也采用GNU Affero General Public License v3许可。

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/>.

依赖项

~30–44MB
~483K SLoC