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

Open Notebook:重新定义个人AI知识管理的开源笔记本LMOpen Notebook由lfnovo社区开发,已成为AI领域最受瞩目的开源项目之一。它直接对标Google的Notebook LM,但提供更灵活的替代方案,让用户完全掌控数据、模型和工作流程。其核心吸引力在于开源特性,消除了闭源替代品带Music Assistant 遭弃用:Home Assistant 用户为何必须立即升级Music Assistant,这个将多个音乐流媒体服务统一在单一 Home Assistant 界面下的开源项目,现已正式弃用其自定义集成组件。该自定义集成最初旨在让用户能够从 Home Assistant 的媒体播放器生态系统中控制 SMusic Assistant前端:一个需要“脊梁”的开源智能家居音频中枢Music Assistant前端托管在GitHub的music-assistant组织下,是一个基于Vue 3的用户界面,旨在作为Music Assistant生态系统的视觉层。该项目致力于成为智能家居音乐控制的中央枢纽,支持多房间音频、查看来源专题页GitHub 已收录 2604 篇文章

时间归档

April 20263042 篇已发布文章

延伸阅读

Bitwarden 认证器并入主应用:双因素认证集成的新纪元Bitwarden 正式归档其独立的 Android 认证器应用,将代码库迁移至主 Bitwarden Android 仓库。此举标志着双因素认证(2FA)更深层次地融入核心密码管理体验,引发关于安全性、便捷性以及专用认证器应用未来的讨论。Sandboxie 分支重生:内核级隔离为 Windows 安全注入新活力传奇沙箱工具 Sandboxie 迎来全新分支 unicorn-os/sandboxie,重新激活 Windows 上的内核级应用隔离。这款轻量级工具无需虚拟化即可重定向文件系统和注册表操作,为恶意软件分析师、开发者和注重隐私的用户提供了一Google OSV-Scanner:一款重塑安全格局的开源漏洞扫描利器Google 正式发布 OSV-Scanner,一款基于 Go 语言的开源漏洞扫描工具,可直接查询 OSV.dev 数据库实现实时依赖匹配。凭借超过 10,000 个 GitHub Star,它以单一二进制文件提供 CI/CD 集成与快速安Ghidra脚本库:逆向工程民主化的无名引擎一个汇聚了超过100个社区贡献脚本的Ghidra逆向工程框架仓库,正悄然改变分析师处理恶意软件、固件和二进制漏洞利用的方式。ghidraninja/ghidra_scripts仓库拥有1147颗星,为绕过Ghidra陡峭的学习曲线提供了实用

常见问题

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,这说明它在开源社区具有较强讨论度和扩散能力。