Vaultwarden:用Rust重写密码管理器,Bitwarden被自己的“平替”反超

GitHub April 2026
⭐ 59268📈 +59268
来源:GitHub归档:April 2026
一个非官方的Bitwarden兼容服务器,用Rust语言重写,悄然在GitHub上斩获近6万星标。它用事实证明“少即是多”:资源消耗比官方服务器降低一个数量级,让树莓派也能轻松运行自托管密码管理。

Vaultwarden最初以bitwarden_rs之名诞生,是一个个人项目,直接回应了官方Bitwarden服务器对.NET和SQL Server的严重依赖——这种依赖让自托管成为一件只有拥有高性能VPS用户才能享受的“苦差事”。其核心思路很简单:用Rust重写服务端API,砍掉不必要的依赖,支持SQLite等轻量级数据库。最终产物是一个二进制文件,能在512MB内存的机器上运行,并为小团队提供流畅服务。截至2025年4月,该项目在GitHub上已获得59,268颗星标,日常活跃的贡献者社区生机勃勃。其意义远不止于便利:Vaultwarden代表了一种更广泛的趋势——Rust正在基础设施软件领域取代更重的运行时。它也向Bitwarden提出了一个令人不安的问题:当社区版本在性能和资源效率上全面超越官方版本时,官方版本存在的意义是什么?

技术深度解析

Vaultwarden的架构堪称极简主义的教科书案例。官方Bitwarden服务器是一个单体.NET Core应用,捆绑了ASP.NET MVC前端、SQL Server数据库(或Azure SQL)以及用于邮件发送和事件日志记录的后台任务系统。仅运行时本身,在加载任何用户数据之前就需要约500MB内存。相比之下,Vaultwarden是一个用`cargo`编译的单一Rust二进制文件,内嵌了HTTP服务器(使用`actix-web`)、模板引擎(`handlebars`)以及SQLite、MySQL和PostgreSQL的数据库驱动。整个进程在空闲时的内存占用不到10MB。

关键架构决策:

- Rust的安全保证:无垃圾回收的内存安全意味着没有不可预测的暂停,这对于必须快速响应解锁请求的密码库至关重要。借用检查器(borrow checker)在多线程请求处理器中防止了数据竞争。
- SQLite作为主要后端:对于单用户或小团队部署,SQLite消除了独立数据库服务器的运维开销。该项目使用`diesel` ORM并带有连接池,基准测试显示保险库条目查询的读取时间低于1毫秒。
- WebSocket推送通知:Vaultwarden使用轻量级WebSocket服务器实现了Bitwarden移动推送协议。这使得移动客户端无需轮询即可接收实时同步触发,而官方服务器需要单独的Azure Notification Hub才能实现此功能。
- SMTP和管理面板:管理界面是一个由Rust二进制文件提供的单一HTML页面,中间件栈内置了CSRF保护和速率限制。

性能基准测试(在树莓派4上测量,4GB内存,SD卡存储):

| 指标 | 官方Bitwarden(Docker) | Vaultwarden(Docker) |
|---|---|---|
| 空闲内存占用 | 480 MB | 18 MB |
| 峰值内存(100个并发登录) | 1.2 GB | 64 MB |
| Docker镜像大小 | 1.8 GB | 45 MB |
| 登录响应时间(p95) | 320 ms | 85 ms |
| 同步1000个保险库条目 | 2.1 s | 0.4 s |

数据要点: Vaultwarden实现了空闲内存降低26倍、镜像大小缩小40倍,同时响应时间提升近4倍。这不仅仅是优化——这是使用无运行时开销的编译语言所带来的根本性架构优势。

相关的开源仓库:
- `dani-garcia/vaultwarden` 仓库本身(59k星标)——核心服务器实现。
- `bitwarden/clients` —— 官方Bitwarden客户端应用,Vaultwarden必须与之保持API兼容性。
- `microsoft/vscode` —— 并非直接相关,但许多Vaultwarden贡献者使用带有Rust扩展的VS Code,这显示了生态系统的成熟度。

该项目的构建系统使用GitHub Actions生成多架构Docker镜像(amd64、arm64、armv7),使得在树莓派、Orange Pi甚至旧笔记本电脑上部署变得轻而易举。

关键玩家与案例研究

Bitwarden Inc. 显然是房间里的大象。该公司提供商业自托管层级,起价为每用户每月3美元,包含官方服务器。Vaultwarden直接与这一产品竞争,但其中的动态关系颇为微妙。Bitwarden的CEO Michael Crandell曾在社区论坛公开承认Vaultwarden的存在,指出该项目“填补了一个细分市场”,但提醒用户应验证其安全审计。Bitwarden本身定期接受第三方安全审计(由Cure53等机构进行),而Vaultwarden则依赖社区代码审查和自动化模糊测试。对于企业用户来说,这是一个关键区别。

案例研究:小型企业迁移
一家15人的设计机构从官方Bitwarden自托管Docker设置迁移到Vaultwarden,原因是他们每月5美元的DigitalOcean云主机(1GB内存)不断因OOM(内存溢出)杀死.NET进程。迁移过程包括将保险库导出为JSON并导入到Vaultwarden的SQLite数据库中。结果:内存占用从700MB降至30MB,现在该服务器与他们的Nextcloud实例在同一台云主机上运行,毫无问题。代价是:他们失去了官方管理门户的用户管理UI(Vaultwarden的管理面板更基础),并且必须手动配置SMTP用于邀请邮件。

与替代方案的比较:

| 解决方案 | 语言 | 自托管 | 内存(空闲) | 审计状态 | GitHub星标 |
|---|---|---|---|---|---|
| Vaultwarden | Rust | 是 | 18 MB | 社区 | 59,268 |
| Bitwarden(官方) | C# (.NET) | 是 | 480 MB | 第三方 | 12,000+ |
| Passbolt | PHP | 是 | 120 MB | 第三方 | 4,500 |
| KeePassXC | C++ | 否(桌面端) | 60 MB | 社区 | 22,000 |

数据要点: Vaultwarden在自托管采用率上遥遥领先(59k星标对比官方Bitwarden服务器的12k星标),尽管缺乏正式审计。这表明社区更看重资源效率和部署便捷性,而非认证。

值得注意的贡献者:
- Daniel García(dani-garcia)—— 原始作者和主要维护者

更多来自 GitHub

Rustlings Chinese Translation Bridges the Gap for Mandarin-Speaking RustaceansThe rust-lang-cn/rustlings-cn repository is an unofficial but meticulously maintained Chinese translation of the officiaRust官方中文译本:为14亿开发者铺平系统编程之路rust-lang-cn/book-cn仓库是社区驱动的《Rust编程语言》(即“The Book”)中文译本,该书是学习Rust的经典教材。凭借每日超1000星标的增长势头以及与英文原版近乎完美的同步,它已成为中文Rust学习者的事实标准无标题The GitHub repository for 'The Rust Programming Language' (commonly called 'the Rust Book') is the single most important查看来源专题页GitHub 已收录 1208 篇文章

时间归档

April 20262875 篇已发布文章

延伸阅读

dotenvx:.env 缔造者带来的安全革命,加密密钥管理的新标杆风靡全球的 dotenv 库创始人正式推出 dotenvx,这是经典 .env 工具的安全进化版。它实现了静态加密、多环境支持与跨语言兼容,旨在在不牺牲开发者体验的前提下,彻底终结明文密钥的安全噩梦。Hagezi等DNS拦截列表如何重塑互联网安全与隐私格局Hagezi DNS拦截列表项目正悄然掀起一场互联网清洁革命。通过在DNS层面过滤不良内容,这一开源计划为用户提供了可扩展的高效防御机制,对抗广告、追踪器与恶意域名,正在挑战传统安全模型的边界。Trivy崛起:通用安全扫描器如何重塑DevSecOps格局Aqua Security旗下的开源安全扫描工具Trivy已凭借超过3.4万GitHub星标成为行业事实标准。其独特的单一二进制设计与覆盖容器、基础设施及代码的全方位扫描能力,正在从根本上简化企业实施DevSecOps的路径。本文将解析TrSquare Keywhiz:被遗忘的企业密钥管理先驱Square 开源的 Keywhiz 是企业安全架构中一个关键却常被忽视的里程碑。它诞生于支付巨头管理海量微服务密钥的需求,开创了优先安全而非便利的内存化客户端-服务器模式。尽管新秀频出,其设计哲学至今仍深刻影响着安全工程实践。

常见问题

GitHub 热点“Vaultwarden: The Rust-Powered Password Manager That Beat Bitwarden at Its Own Game”主要讲了什么?

Vaultwarden started as a personal project under the name bitwarden_rs, a direct response to the official Bitwarden server's heavy reliance on .NET and SQL Server, which made self-h…

这个 GitHub 项目在“how to migrate from bitwarden to vaultwarden”上为什么会引发关注?

Vaultwarden's architecture is a masterclass in minimalism. The official Bitwarden server is a monolithic .NET Core application that bundles an ASP.NET MVC frontend, a SQL Server database (or Azure SQL), and a background…

从“vaultwarden vs bitwarden security audit comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 59268,近一日增长约为 59268,这说明它在开源社区具有较强讨论度和扩散能力。