【Matrix】Matrix 开源 Rust 项目全景

Matrix 生态中 Rust 扮演着越来越重要的角色------从底层协议库、高性能服务器到终端客户端,都有成熟的 Rust 实现。以下是完整的项目图谱:


🏗️ 一、基础设施层:Ruma

项目地址https://github.com/ruma/ruma

属性 说明
许可证 MIT / Apache-2.0
Stars 600+
下载量 42万+ 次

Ruma 是整个 Matrix Rust 生态的基石,它不是一个可运行的应用程序,而是一套 Rust crate 集合,提供了 Matrix 协议中所有数据类型的序列化/反序列化实现。

复制代码
ruma/
├── ruma-common          # 通用类型和 traits
├── ruma-client-api      # 客户端-服务器 API 端点类型
├── ruma-federation-api  # 服务器间联邦 API 类型
├── ruma-events          # 所有 Matrix 事件类型
└── ruma-appservice-api  # 应用服务 API 类型

几乎所有其他 Matrix Rust 项目(SDK、服务器、客户端)都依赖 Ruma。例如 matrix-rust-sdkruma 依赖就是通过 ruma-client-api 引入的。


🎯 二、客户端 SDK 层:matrix-rust-sdk

项目地址https://github.com/matrix-org/matrix-rust-sdk

属性 说明
维护方 Matrix.org 官方
Stars 1,200+
Forks 260+

这是官方维护的 Rust 客户端 SDK,所有上层客户端(桌面、移动、CLI)都基于它构建。架构上分为多个子 crate:

Crate 功能 说明
matrix-sdk 主库 整合所有功能,提供高层 API
matrix-sdk-base 无 IO 状态机 房间状态、事件处理
matrix-sdk-crypto 纯加密状态机 Olm/Megolm 端到端加密
matrix-sdk-indexeddb 存储层 IndexedDB 持久化(WASM)
matrix-sdk-qrcode 二维码 设备验证等功能

跨平台绑定

matrix-sdk-crypto 提供了多种语言的绑定:

绑定 目标平台 NPM 包
Node.js 服务端/桌面 @matrix-org/matrix-sdk-crypto-nodejs
WASM Web 浏览器 @matrix-org/matrix-sdk-crypto-wasm
React Native 移动端 @unomed/react-native-matrix-sdk

Node.js 绑定支持:Linux (x86_64/aarch64/arm/s390x)、macOS (x86_64/aarch64)、Windows (x86_64/aarch64/i686)

WASM 绑定使用示例

javascript 复制代码
import { initAsync, OlmMachine, UserId, DeviceId } from "@matrix-org/matrix-sdk-crypto-wasm";

await initAsync();
const machine = await OlmMachine.initialize(
    new UserId("@alice:matrix.org"),
    new DeviceId("DEVICEID")
);
// 处理同步数据...
const decrypted = await machine.receiveSyncChanges(...);
const outgoing = await machine.outgoingRequests();

⚠️ 历史漏洞

matrix-rust-sdk 0.7.0 版本存在一个漏洞:加密备份私钥会被记录到 debug 日志中,已于 0.7.1 修复。建议始终使用最新版本。


🖥️ 三、家庭服务器层(Homeserver)

Matrix 在 Rust 中主要有三个家庭服务器实现,按活跃度排序:

1. Tuwunel(推荐)

项目地址https://github.com/matrix-construct/tuwunel

属性 说明
维护方 全职团队,企业赞助
特点 轻量、高性能、低内存

Tuwunel 是 conduwuit 的官方继任者,主打资源效率------空闲时内存占用约 80MB,可在树莓派或低配 VPS 上运行。官方提供 Docker 镜像和预编译静态二进制。

最新版本:v1.4.9(修复了 CVE-2026-24471 安全漏洞)

2. continuwuity(社区延续)

项目地址https://gitea.com/fosscaports/continuwuity

属性 说明
维护方 社区志愿者
特点 从 conduwuit 无缝迁移

conduwuit 项目已归档,continuwuity 是其官方社区延续项目。目标是维持稳定可靠的 Rust Matrix 服务器,修复 bug 和性能问题,补充缺失功能。

最新版本:v0.5.1

3. Maelstrom(已停滞)

项目地址https://github.com/maelstrom-rs/maelstrom

高吞吐量设计,但最后一次更新是 4 年前,已不推荐使用。

⚠️ 安全提醒:CVE-2026-24471

2026 年 2 月披露了一个高危漏洞(CVSS 9.3/9.6),影响所有 Conduit 衍生服务器(包括 Tuwunel、continuwuity、Conduit、Grapevine):

  • 攻击方式:恶意远程服务器可利用用户交互(离开/加入房间)诱骗受害者服务器签署任意事件
  • 已修复版本:Tuwunel 1.4.9、continuwuity 0.5.1、Conduit 0.10.11

如果你使用的是旧版本,请立即升级。


📱 四、客户端应用

1. Iamb(终端 TUI 客户端)

项目地址https://github.com/ulyssa/iamb

属性 说明
Stars 690+
特点 Vim 快捷键,纯终端界面

专为 Vim 爱好者设计的终端客户端,资源占用极低,支持完整的端到端加密。可通过 cargo install iamb 安装。

2. Robrix(GUI 客户端)

项目地址https://github.com/project-robius/robrix

属性 说明
技术栈 Makepad UI + Robius 框架
状态 Alpha 阶段

纯 Rust 编写的跨平台 GUI 客户端,目前处于早期开发阶段。

3. Netrix

crates.ionetrix

另一个使用 Makepad + Robius 的客户端,2026 年 3 月有更新。


🤖 五、机器人/Bot 框架

Headjack

项目地址https://github.com/arcuru/headjack

Rust 机器人框架/库,用于连接 Matrix。轻量级设计,适合开发自动化工具。

其他 Bot 工具

项目 功能
pokem HTTP 监听 + 转发到 Matrix(类似 ntfy.sh
matrix-tabsbot 在房间中维护标签页的小型机器人

🔧 六、辅助工具

项目 功能 说明
rust-synapse-compress-state Synapse 状态压缩 官方工具,用 Rust 压缩 Python Synapse 的状态表
weechat-matrix-rs WeeChat Matrix 插件 Rust 重写版
synapse-admin-api Synapse Admin API 类型 Ruma 风格的类型定义

📊 七、总结:全栈 Rust 方案

层级 推荐项目 状态
协议基础 Ruma ✅ 稳定,广泛使用
客户端 SDK matrix-rust-sdk ✅ 官方维护,活跃
家庭服务器 Tuwunel / continuwuity ✅ 活跃,有全职/社区维护
终端客户端 Iamb ✅ 稳定可用
GUI 客户端 Robrix 🚧 开发中
Bot 框架 Headjack ✅ 可用

选型建议

如果你要从零搭建一套纯 Rust 的 Matrix 服务

  1. 服务器 :选 Tuwunel(Docker 一键部署)
  2. 客户端开发 :使用 matrix-sdk + ruma 类型
  3. 日常使用 :终端用户用 Iamb ,图形界面用户用 Element(虽非 Rust,但兼容性最好)
  4. 跨语言集成 :使用 matrix-sdk-crypto 的 Node.js/WASM 绑定

你是想继续深入了解某个具体项目(如 Tuwunel 的配置细节、matrix-sdk 的 API 使用),还是准备开始动手部署了?

相关推荐
林会2 小时前
DeerFlow本地部署!调用本地大模型
python·开源
浪客川3 小时前
【百例RUST - 011】简单键值对
开发语言·后端·rust
yumgpkpm3 小时前
Qwen3.6正式开源,华为昇腾910B实现高效适配
华为·ai作画·stable diffusion·开源·ai写作·llama·gpu算力
a1117763 小时前
PascalEditor( 3D建筑编辑器 开源)
前端·开源·html
techdashen14 小时前
Rust项目公开征测:Cargo 构建目录新布局方案
开发语言·后端·rust
Rust研习社14 小时前
Rust 智能指针 Cell 与 RefCell 的内部可变性
开发语言·后端·rust
冬奇Lab15 小时前
一天一个开源项目(第75篇):Hermes Agent - Nous Research 开源的自我进化 AI Agent
人工智能·开源·资讯
朝阳58117 小时前
rust 交叉编译指南
开发语言·后端·rust