【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-sdk 的 ruma 依赖就是通过 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.io :netrix

另一个使用 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 使用),还是准备开始动手部署了?

相关推荐
SelectDB技术团队3 分钟前
ClickHouse 支持存算分离吗?Doris 社区版原生存算分离怎么落地
数据库·clickhouse·云原生·开源·apache doris·技术选型·存算分层
分布式存储与RustFS1 小时前
十分钟在自己机器上跑通一个 S3 兼容对象存储(RustFS + Docker)
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
元岳数字人小元1 小时前
告别云端依赖,数字人本地部署筑牢项目安全底座
人工智能·安全·架构·开源·人机交互·交互
小杨互联网1 小时前
Kenney / Blender CC0 小资源离线镜像汇总
开源·blender·游戏素材·kenney·cc0·离线包
2601_949480062 小时前
开源鸿蒙平台 KMP 三方库「kasechange」适配全流程
华为·开源·harmonyos
resh_people2 小时前
开源鸿蒙平台 CMP 三方库「table」适配全流程
华为·开源·harmonyos
喜欢吃豆2 小时前
我开源了 Agent UI Lab 用交互实验理解 AG-UI A2UI 与 MCP Apps
ui·开源·大模型·交互
hhhjhl2 小时前
开源鸿蒙平台 CMP 三方库「compose-macos-26-ui」适配全流程
macos·开源·harmonyos
miofly3 小时前
GitHub 日榜趋势速报 | 2026-10-29
开源·github
网络豆14 小时前
开源鸿蒙平台 CMP 三方库「navigation-compose-extended」适配全流程
华为·开源·harmonyos