Conduit 0.10.15 介绍与选型指南

Conduit(Rust 编写的轻量级 Matrix homeserver)介绍与选型:定位与架构、功能特性与边界、适用场景,以及与 Synapse/Dendrite/Continuwuity/Tuwunel 的量化选型对比,基于 2026-10-25 官方源实查与 v0.10.15 实测。

ConduitConduitMatrix自托管即时通信2026/10/25

Conduit 0.10.15 介绍与选型指南

目标:读完本文即可判断 Conduit 是否适合你的场景——它是谁、核心架构与功能边界是什么、与 Synapse / Dendrite / Continuwuity 等 Matrix homeserver 相比如何选型。本文为认知篇,事实性信息均溯源官方渠道(官网、GitLab 仓库、官方文档站与 Tags/Releases 页,查询日期 2026-10-25),关键能力附 v0.10.15 本地实测佐证;安装与部署实操见本专栏后续篇章。

一、环境信息(资料来源与查询口径)

本章说明本文全部事实性信息的来源与查询口径,便于读者复核。所有版本号、下载地址、特性清单均取自下列官方渠道,查询日期统一为 2026-10-25:

⚠️ 注意区分:网络上另有 getconduit.dev / conduitplatform 的「Conduit Platform」(一个 API 平台产品),与本文的 Matrix homeserver Conduit 是完全无关的两个项目,选型与检索资料时勿混淆。

二、软件概述

本章回答「Conduit 是什么、适合谁」。Conduit 是一个用 Rust 编写的 Matrix 联邦聊天主服务器(homeserver),官方自我定位是「An efficient Matrix homeserver that's easy to set up and just works」——一个高效、装好即用的 Matrix 主服务器,目标场景是在树莓派这类小机器上为家人、朋友或公司自托管 Matrix 服务。

Matrix 是一个开放的去中心化通信网络:每个 Matrix 域名背后需要一个 homeserver 存放账号、房间与消息历史,不同 homeserver 的用户通过联邦(federation)协议互相聊天,还可以通过桥(bridge / appservice)与 Discord、Telegram 等外部社区互通。Conduit 承担的就是 homeserver 这个角色。

几个关键事实(均为官方口径实查):

  • 维护方:项目由 Famedly 公司主导维护(仓库在 famedly 组织下),并获 FUTO、Prototype Fund(德国 DLR 与 BMBF)等资助;2026 年仍保持活跃发版(2026 年内已发布 v0.10.12~v0.10.15 共 4 个版本);
  • 成熟度:官方明确自述 Beta——「可以加入并参与大多数 Matrix 房间,但并非所有功能都支持,偶尔会遇到 bug」。截至查询日仍缺两项重要功能:跨联邦的 E2EE 表情验证(E2EE 聊天本身可用)与外发的已读回执 / 输入中状态 / 在线状态 over federation(接收方向正常);
  • 官方公共实例:conduit.rs 是官方示范实例,托管在一台 ODROID HC2(2GB 内存、三星 Exynos 5422 CPU,即 Galaxy S5 同款 SoC) 上,并加入了 Matrix HQ 等大型房间——这是 Conduit「低资源」主张最有力的实证(官方 README 口径);
  • 版本节奏:近一年版本为 v0.10.15(2026-09-29)→ v0.10.14(2026-09-26)→ v0.10.13(2026-08-25)→ v0.10.12(2026-02-12)→ v0.10.11(2025-12-30)→ v0.10.10(2025-12-22),整体呈不定期但持续的节奏,且近期多个版本为安全修复(见第六章)。

💡 技术拓展:Matrix 体系里的「服务器」不止一种角色,首次接触容易混淆——

角色职责典型实现
Homeserver(主服务器)存放账号、房间状态与消息历史,参与联邦同步Synapse、Conduit、Dendrite、Continuwuity
Identity Server(身份服务器)邮箱/手机号到 Matrix ID 的映射查找matrix.org 公共服务(可选)
Appservice(应用服务)以「桥接」方式把其他平台接入 Matrixmautrix 系列桥
客户端用户聊天界面Element、FluffyChat、Nheko 等

Conduit 承担的是 homeserver 角色:一个 Matrix 域名有且只有一个 homeserver,客户端与联邦流量都由它承接;桥接与身份服务是可选外围组件。

三、核心架构

本章拆解 Conduit 的架构组成与关键设计取舍,帮助读者理解它「为什么轻、边界在哪」。

3.1 单二进制 + 嵌入式存储

Conduit 的整个服务编译为一个静态链接的二进制文件(x86_64 musl 静态版实测 63MB,65695016 字节),所有状态存放在嵌入式 RocksDB 中(配置也支持 sqlite 后端,官方推荐 rocksdb)。运行它不依赖任何外部数据库、缓存或消息队列,只需要:

  • 一个持久化目录(默认 /var/lib/matrix-conduit/,RocksDB 数据与媒体文件同根目录);
  • 一个 TOML 配置文件(路径由环境变量 CONDUIT_CONFIG 指定,未设置时 Conduit 直接报错退出——配置文件是必需的);
  • 生产上再加一个反向代理(Caddy / Nginx 等)承担 TLS 终结。

实测资源占用(Ubuntu 22.04 + v0.10.15,完成管理员注册后的稳态):数据目录约 76MB,进程常驻内存(RSS)约 37MB——与官方「2GB 内存的 ODROID 即可跑公共实例」的主张一致。

3.2 技术栈:axum + ruma

Conduit 基于 Rust 生态两个关键库构建:axum(模块化 Web 框架,承载 HTTP 服务)与 ruma(Matrix 协议的 Rust 类型库,保证协议实现的类型安全与规范跟随)。单进程内同时承载 Client-Server API 与联邦 Server-Server API,默认监听同一端口(官方示例配置为 6167)。

💡 技术拓展:homeserver 的存储引擎选型是各家实现的核心分歧点——

引擎代表实现特点适用场景
PostgreSQLSynapse(推荐后端)独立数据库服务,可专业运维、可扩展有 DBA 团队、大规模部署
SQLiteSynapse(默认)、Conduit(可选后端)零运维单文件极小规模、个人测试
RocksDBConduit(默认)、Continuwuity嵌入式 LSM-KV,写入吞吐高、无独立进程单实例自托管、资源敏感场景

Conduit 默认采用 RocksDB:嵌入形态免去了独立数据库进程的运维面,LSM 引擎对消息追加写负载友好;代价是数据库与进程同生命周期,横向扩展无从谈起(见 3.3)。

3.3 扩展性边界:单实例形态

Conduit 是单进程、单实例架构:状态全部在本地 RocksDB 中,不支持水平扩展与多副本高可用,扩容方向只有纵向(加 CPU/内存/磁盘)。对照 matrixdocs.github.io 的 Matrix homeserver 对比表(2026-10-25 实查):Synapse 有 Prometheus 指标与 ESS 社区 Helm Chart,Dendrite 仓库内置 Helm Chart,而 Conduit 没有官方 metrics 端点、也没有官方 Kubernetes 部署形态(社区有第三方 Helm Chart,见《Conduit Docker Compose 部署指南》附节)。这决定了它面向的是单实例自托管场景。

3.4 协议覆盖实测

在 v0.10.15 上实测 GET /_matrix/client/versions 返回:

{"versions":["r0.5.0","r0.6.0","v1.1","v1.2","v1.3","v1.4","v1.5","v1.6","v1.7","v1.8","v1.9","v1.10","v1.11","v1.12"],"unstable_features":{"org.matrix.e2e_cross_signing":true,"org.matrix.msc3916.stable":true,"org.matrix.simplified_msc3575":true}}

即覆盖 Matrix Client-Server API r0.5.0 至 v1.12,并启用 E2EE 交叉签名等不稳定特性。房间版本实测默认 12,可用 6–12(stable)与 3–5(unstable),详见《Conduit 0.10.15 配置参数详解》。

四、功能特性

本章汇总官方渠道可确认、并经本地实测佐证的功能清单:

功能说明来源
Matrix 联邦完整联邦协议,房间版本 6–12(默认 12)官方文档 + v0.10.15 实测
单端口服务Client API 与联邦 API 共用一个 HTTP 端口官方配置文档
RocksDB 嵌入式存储单数据目录,也支持 sqlite 后端官方配置文档
注册管控开放注册开关 + 静态注册令牌(registration_token)v0.10.15 实测(UIAA 两步注册)
闪电标识注册用户名自动追加 ⚡️ 后缀(enable_lightning_bolt,默认开)实测注册 admin 后显示名为 admin ⚡️
admin 房间管理首个注册用户自动加入管理房间,向 @conduit 机器人发命令管理服务器(创建用户、重置密码、列房间、媒体治理、缓存清理等 30+ 子命令)v0.10.15 实测
媒体存储治理filesystem 或 S3 后端,按范围(local/remote/thumbnail)配置保留策略自动清理官方配置文档
环境变量覆盖任意配置项可用 CONDUIT_{字段} 环境变量覆盖(表内字段用 CONDUIT_{表}_{字段})v0.10.15 实测生效
更新检查allow_check_for_updates,管理员可在管理房间收到新版本广播实测收到 v0.10.15 更新广播
TURN 支持内置 TURN 配置项,支撑音视频通话官方配置文档
Appservice 桥接支持 Matrix appservice 协议接入外部平台桥官方仓库 APPSERVICES 文档

表格解读:这份清单的权重明显偏向「部署与运维简单性」——单二进制、单数据目录、环境变量全量覆盖、管理操作收敛到一个聊天房间里的机器人命令;而「水平扩展」「官方监控指标」这类大型部署特性被明确放在边界之外。选型时按团队实际规模对照取舍。

五、快速开始(最小可用示例)

本章给出最小可用的启动形态,让读者对「跑起来长什么样」建立直观认知;完整的从零部署(systemd 托管、反向代理、注册验证)见本专栏部署篇。

Conduit 官方提供三种主要制品:静态二进制、deb 包、OCI 镜像。以单二进制为例,最小启动只需四步(以下为 v0.10.15 实测命令,Ubuntu 22.04):

# 1. 下载官方静态二进制(GitLab CI 制品,63MB)
wget -O /usr/local/bin/matrix-conduit "https://gitlab.com/api/v4/projects/famedly%2Fconduit/jobs/artifacts/v0.10.15/raw/x86_64-unknown-linux-musl?job=artifacts"
chmod +x /usr/local/bin/matrix-conduit

# 2. 验证可执行
matrix-conduit --version

实测输出:

conduit 0.10.15 (db37763)
# 3. 准备最小配置 /etc/matrix-conduit/conduit.toml(server_name 为必改项)
# 4. 设置 CONDUIT_CONFIG 环境变量后启动,curl 健康检查
curl http://127.0.0.1:6167/_matrix/client/versions

返回 3.4 节所示的 versions JSON 即服务可用。完整的用户注册流程(注册令牌 + UIAA 两步)见《Conduit 0.10.15 API 使用详解》。

六、适用场景与限制

本章给出选型判断的「正面清单」与「负面清单」,全部对照官方口径与实测事实。

6.1 适用场景

  1. 个人 / 家庭 / 小团队自托管:一个低配 VPS 或树莓派级硬件即可承载完整联邦体验(官方公共实例跑在 2GB 内存的 ODROID HC2 上并加入了 Matrix HQ 大房间),无外部数据库依赖;
  2. 资源受限环境:Rust + 嵌入式 RocksDB 的内存占用远低于 Synapse(实测稳态 RSS 约 37MB),适合旧服务器、NAS、小型云主机;
  3. 想要「单二进制装好即用」的运维偏好:一个二进制 + 一个配置 + 一个数据目录,备份即拷贝数据目录;
  4. Matrix 轻量实验与二次开发:协议覆盖到 v1.12,适合作为学习 Matrix 协议、联调客户端与机器人的轻量后端。

6.2 限制与注意事项

  1. Beta 成熟度(官方明示):跨联邦 E2EE 表情验证、外发已读回执/输入中/在线状态尚未实现,偶尔会遇到 bug;不适合作为对功能完备性有硬要求的大型社区生产后端;
  2. 不支持水平扩展 / HA:单实例形态,状态在本地 RocksDB;要高可用的大型部署应选 Synapse + PostgreSQL 工作器架构;
  3. 无官方 metrics 与 k8s 形态:监控需走日志与外部探测,Kubernetes 只能依赖社区 Helm Chart;
  4. 安全版本需紧跟:v0.10.10 至 v0.10.15 连续多个版本含安全修复(认证绕过、账号接管、ESS 签名钥匙泄露缓解等,管理房间更新广播口径)——选择 Conduit 就默认接受了「及时跟进稳定版」的运维节奏;
  5. 注册令牌的客户端兼容性:开启 registration_token 后,注册需客户端支持令牌填写(官方点名 Element web、Nheko、SchildiChat web 支持);纯 API 方式用 curl 两步注册亦可(实测可行);
  6. 生态位认知:第三方文档、桥与机器人的兼容性验证多以 Synapse 为第一假设,Conduit 用户需自行验证关键集成。

七、同类选型对比

本章对 Matrix homeserver 生态的主要实现做量化对比(数据查询日期 2026-10-25),先给总表,再给「如果…则…」建议。

7.1 对比总表

维度SynapseDendriteConduitContinuwuityTuwunel
开发语言Python(Twisted,部分 Rust)GoRustRustRust
维护方Element(matrix.org 官方参考实现)matrix.org 二方实现Famedly社区组织 continuwuation社区分支
维护状态(2026-10-25)活跃维护节奏放缓活跃(2026 年 4 个版本)活跃活跃
仓库 Star12k(旧仓 matrix-org/synapse)+ 4.7k(现仓 element-hq/synapse)5.6k964(GitLab)116(Forgejo 主仓)社区新分支
数据库PostgreSQL(推荐)/SQLitePostgreSQLRocksDB(默认)/SQLiteRocksDBRocksDB
外部依赖需独立 DB(联邦场景加 Redis)需独立 DB无(单二进制+数据目录)无无
水平扩展支持(工作器架构)实验性否否(官方明示)否
官方 k8s / metricsESS 社区 Helm + Prometheus仓库内置 Helm均无(社区 Helm 可用)有官方 K8s 文档有
成熟度生产级(参考实现)Beta(放缓)Beta(官方自述)活跃迭代活跃迭代
一句话定位功能最全的官方参考实现Go 生态尝试轻量易装的 Rust 实现conduwuit 的社区后继主线conduwuit 另一后继

表格解读:分岔口有两条——第一条是要不要 HA / 水平扩展与生产级生态:要则选 Synapse;不要则轻量系全部进入候选。第二条是轻量系里选谁:Conduit 胜在「官方制品齐全(二进制/deb/OCI 镜像)、文档完善、上手最快」,Continuwuity / Tuwunel 胜在功能与性能的更激进迭代,按维护方背景与发版节奏二选一。

7.2 量化参考数据

  • 版本节奏(GitLab Tags 页实查):v0.10.15(2026-09-29)、v0.10.14(2026-09-26)、v0.10.13(2026-08-25)、v0.10.12(2026-02-12)、v0.10.11(2025-12-30)、v0.10.10(2025-12-22)、v0.10.9(2025-09-12)、v0.10.8(2025-08-11)、v0.10.7(2025-08-04)、v0.10.6(2025-07-07)——2026 年保持季度内多次发版;
  • Star 口径提示:Conduit 主仓在 GitLab(964 Star),与 GitHub 单仓项目(Synapse 12k+4.7k、Dendrite 5.6k)的绝对值不宜直接对比——GitLab 项目的 Star 文化弱于 GitHub;更可靠的活跃度信号是发版频率与提交密度(Conduit 两项均健康);
  • Continuwuity / Tuwunel:两者同为已停更的 conduwuit 的社区后继,Continuwuity 的完整溯源见本平台《Continuwuity 介绍与选型指南》。

7.3 选型建议(如果…则…)

  • 如果你要官方背书、生态最全、可水平扩展上生产 → 选 Synapse;
  • 如果你要单二进制装好即用、资源占用最小、个人/小团队联邦 → 选 Conduit;
  • 如果你要轻量系里更激进的功能/性能迭代,能接受社区治理 → 看 Continuwuity 或 Tuwunel;
  • 如果你是 Go 技术栈做二次开发 → 看 Dendrite(注意其维护节奏已放缓)。

八、参考链接