【免费下载链接】continuwuity
A community-driven Matrix homeserver
Continuwuity是一个用 Rust 编写的轻量级 Matrix homeserver(家庭服务器),它是社区维护的 conduwuit 官方延续项目。它以极低的内存占用、单二进制文件部署和接近原生性能著称,适合在轻量硬件上自托管你的聊天服务器。本文将带你全面解析它的来历、核心优势、功能清单、部署步骤与配置要点,帮你判断它是否适合你。
一、Continuwuity 是什么?一分钟背景速览
- 开源协议:Apache-2.0,完全免费开源(见 LICENSE)
- 技术栈:Rust + RocksDB 数据库,单进程单二进制运行
- 项目定位:社区驱动的 Matrix homeserver,是 conduwuit 停止维护后的官方延续版本
- 当前版本:
26.9.1(定义于 Cargo.toml) - 开发模式:main 分支每周持续更新 + 定期正式版本,变更说明记录在 changelog.d/ 目录与 CHANGELOG.md
简单来说:如果你想要一个"邮件般自由互联"的去中心化聊天网络服务器,又不想为 Synapse 那样的 Python 全家桶付出资源代价,Continuwuity 就是目前最省心的选择之一。官方介绍见 docs/introduction.mdx。
二、为什么用 Rust 写 homeserver?轻量与高性能的秘密 🚀
选择 Rust 并非跟风,而是直接决定了 Continuwuity 的三大优势:
| 对比维度 | Rust 方案(Continuwuity) | 传统 Python 方案(如 Synapse) |
|---|---|---|
| 资源占用 | 仅需服务器的一小部分资源,树莓派级硬件可跑 | 需要较多内存,扩展成本高 |
| 部署形态 | 单个静态二进制 + RocksDB 数据目录 | 多组件(PostgreSQL、worker 进程等) |
| 稳定性 | 无 GC 停顿,内存安全有保障 | 依赖多进程管理 |
| 冷启动 | 秒级启动 | 较慢 |
它的数据库层直接使用 RocksDB(见 src/database/ 模块),无需外挂数据库服务;业务逻辑集中在 src/service/ 模块,涵盖房间、成员、媒体、联邦推送等全部 homeserver 职责。
Continuwuity 的模块化架构:每个功能拆分为独立 crate,通过分层依赖组合成完整 homeserver(图源 docs/development/index.mdx)
三、功能亮点清单:轻量但不"减配" ✅
很多人担心轻量 homeserver 功能残缺,Continuwuity 实际已覆盖生产环境所需:
- 完整联邦(Federation):与其他 Matrix 服务器互联互通,S-S 协议端点实现在 src/api/server/
- 推送通知:支持 Push Gateway 与 WebPush 两种模式(详见 docs/guides/push.mdx)
- OIDC / OAuth2 登录:配置参考 docs/authentication/oidc.mdx
- 内置管理房间:注册第一个账号后自动加入 admin room,可直接在聊天界面管理服务器,管理端代码见 src/admin/
- 媒体与缩略图:图片预览、缩略图生成在 src/service/media/
- 端到加密支持:设备管理、密钥备份(key backup)
- LiveKit 语音通话集成:部署示例在 docs/calls/livekit.mdx
- 反垃圾消息:内置 ruminuwuity 反垃圾策略模块(src/ruminuwuity/)
- Prometheus 指标:可导出监控指标,仪表盘 JSON 在 docs/public/guides/grafana-dashboard.json
推送流程以 Gateway 模式为例,官方图解如下:
Gateway 模式推送流程:Continuwuity 经 Gateway 转换格式后送达设备推送应用(图源 docs/guides/push.mdx)
四、快速部署:Docker 一键部署 Matrix Homeserver 教程
官方推荐的部署方式是 Docker Compose,完整步骤见 docs/deploying/docker.mdx。核心流程只有 5 步:
- 准备域名:将域名(如
example.com)解析到服务器 IP - 选反向代理:Caddy、Traefik、nginx 均可,现成 Compose 示例位于 docs/public/deploying/ 目录(如 docker-compose.with-caddy.yml)
- 修改 Compose 文件:把
example.com替换为你的域名 - 启动:
docker compose up -d - 注册管理员:
docker compose logs continuwuity查看日志中的 registration token,用任意 Matrix 客户端注册第一个账号
部署前请确认:443(客户端流量)与8448(联邦流量)端口已开放,且 Matrix 联邦必须走 HTTPS。三个必需的环境变量:
CONTINUWUITY_SERVER_NAME # 服务器域名(⚠️ 设置后不能改,否则需清库) CONTINUWUITY_DATABASE_PATH # 数据库存储路径 CONTINUWUITY_ADDRESS # 监听地址,Docker 内用 0.0.0.0💡 小提示:Docker 默认 DNS 解析器可能导致联邦超时,官方建议在 Compose 中挂载自定义
/etc/resolv.conf,详细方案见 docs/guides/dns.mdx。
五、配置指南:conduwuit.toml 与环境变量
注意一个容易混淆的点:Continuwuity 的二进制叫conduwuit,配置文件叫conduwuit.toml(docs/deploying.mdx)。
仓库中的 conduwuit-example.toml 是自动生成的完整配置模板,每一项都有注释和对应的CONTINUWUITY_*环境变量名,例如server_name对应CONTINUWUITY_SERVER_NAME。配置文件源码定义在 src/core/config/ 模块。
新手最关心的几项配置:
| 配置项 | 环境变量 | 说明 |
|---|---|---|
server_name | CONTINUWUITY_SERVER_NAME | 服务器域名,决定用户 ID 后缀 |
address/port | CONTINUWUITY_ADDRESS | 监听地址与端口 |
allow_federation | CONTINUWUITY_ALLOW_FEDERATION | 是否开放联邦 |
registration | — | 注册策略与 token 管理 |
配置项总览文档:docs/reference/config.mdx;配置合法性检查逻辑见 src/core/config/check.rs。
六、开发者视角:模块化设计与热重载机制 🔧
对想参与贡献的开发者,Continuwuity 的代码结构非常清晰。工作区成员全部位于 src/ 目录,职责一目了然:
| Crate | 职责 |
|---|---|
src/main/ | 程序入口、异步运行时与信号处理 |
src/router/ | 基于 axum 的 Web 服务器与请求路由 |
src/api/ | Matrix 客户端(C-S)与联邦(S-S)HTTP API |
src/service/ | 业务逻辑:发送队列、媒体、房间状态等 |
src/database/ | RocksDB 封装、数据流与游标 |
src/core/ | 配置、日志、错误处理等基础设施 |
src/admin/ | 管理房间命令 |
更有趣的是它的热重载机制:调试构建下各模块编译为动态库,修改源码后无需重启服务器即可加载新代码,加载与卸载顺序如下图所示:
热重载顺序:绿色为加载方向,红色为卸载方向(图源 docs/development/hot_reload.mdx)
想深入开发流程,可阅读 docs/development/contributing.mdx 与代码风格规范 docs/development/code_style.mdx。
七、常见问题 FAQ ❓
Q1:能从其他 homeserver 迁移数据吗?仅支持从Conduwuit直接迁移;从 Conduit、Grapevine、Dendrite、Synapse 迁移目前不被支持(数据库不兼容),详见 README.md 的迁移说明。
Q2:有现成的官方镜像可以试用吗?有。官方镜像标签包括latest、main及性能优化版latest-maxperf,Docker Hub 与 GitHub Registry 均有镜像同步。此外官方合作服务器federated.nexus和continuwuity.rocks可直接注册体验,无需自建。
Q3:如何升级版本?拉取新镜像后执行docker compose down→docker compose pull→docker compose up -d即可。升级前请务必阅读版本说明,可能包含破坏性变更。
Q4:适合小规模部署吗?非常适合。它的目标就是"在普通硬件上轻量高效运行",单二进制 + RocksDB 意味着无需数据库服务、无需多 worker 进程,运维成本极低。
八、总结:谁应该选择 Continuwuity?
- ✅个人/小团队自建:想要低资源、低运维成本的 Matrix 服务器
- ✅Conduwuit 老用户:作为官方延续项目无缝继承生态
- ✅资源受限环境:VPS、NAS、树莓派等轻量硬件
- ⚠️需要 Synapse 全部插件生态:请谨慎评估,生态尚在发展
如果你对轻量级 Rust 项目的工程实践感兴趣,可以直接浏览 src/ 下的模块划分,或从 docs/ 官方文档出发搭建你的第一台 Matrix homeserver。轻量不等于简陋——这正是 Continuwuity 想证明的事。
【免费下载链接】continuwuity
A community-driven Matrix homeserver
相关推荐
终极指南:Dendrite与Synapse性能对比分析 - 为什么选择新一代Matrix Homeserver
终极指南:Dendrite与Synapse性能对比分析 为什么选择新一代Matrix Homeserver 在Matrix去中心化通信生态系统中,选择正确的ho
后端即时通讯终极指南:ESP-IDF OTA机制中分区状态管理的优化与实践
终极指南:ESP IDF OTA机制中分区状态管理的优化与实践 ESP IDF(Espressif IoT Development Framework)作为乐鑫
物联网嵌入式OpenAI Token计算终极方案:Tiktokenizer vs 传统方法对比
OpenAI Token计算终极方案:Tiktokenizer vs 传统方法对比 Tiktokenizer是一款基于OpenAI tiktoken库开发的在线
AI 应用前端开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考