📌 项目地址:rustfs/rustfs | ⭐ 33,069 颗星 | 🔧 Rust | 📜 未标注
📌 项目地址:rustfs/rustfs | ⭐ 33,069 颗星 | 🔧 Rust | 📜 Apache 2.0
自建对象存储的困境很多人都碰过:MinIO 功能全,但社区版在 2021 年改成了 AGPLv3,不少公司法务直接把 AGPL 依赖拉进黑名单;Ceph 能打,部署和运维的复杂度劝退了一堆小团队;公有云 S3 倒是省心,账单和锁定感也实实在在。
RustFS 的思路很直接:用 Rust 写一个 S3 兼容的分布式对象存储,许可证选 Apache 2.0。33069 颗星,说明这个定位戳中了不少人。
功能到底齐不齐
我不喜欢只听官方说”功能强大”,直接看 README 里的功能矩阵。以下条目官方都标了 ✅ Available(已发布且有 CI 覆盖):
- S3 核心功能、上传下载、版本控制、对象锁(WORM)
- 服务端加密、自带 KMS、桶配额
- 单机模式和分布式模式
- Bitrot 静默数据损坏保护,加上自动修复和扫描器
- 存储池扩容和下线(Pool Expansion / Decommission)
- 桶复制和站点复制
- 生命周期管理(ILM),支持把冷数据分层到远程 S3
- OpenStack Swift API 和 Keystone 认证的原生支持,这条 MinIO 没有
矩阵里还有一部分标 🧪 Preview(需手动开启或兼容范围有限),用之前要看清楚状态。
迁移前必看的一份文档
README 里提到一份文件:docs/architecture/s3-compatibility-matrix.md,列出了当前支持的 S3 API 覆盖范围。”S3 兼容”永远是部分兼容,具体缺哪些 API、哪些行为有差异,这份矩阵是第一手依据。我的建议是:把你的应用实际用到的 S3 API 列出来,逐条对着矩阵核对,比跑泛泛的基准测试更有意义。
README 没有给出安装命令,部署步骤看 rustfs.com 的 Getting Started 和 Docs。
和 MinIO 比,差异在哪
许可证是最大差异。 AGPL 的传染性意味着基于 MinIO 做服务可能被迫开源自己的业务代码,这条路对商业产品基本走不通。Apache 2.0 没有这个问题,可以闭源集成、二次开发、直接商用。RustFS 能在短时间内冲到三万多星,我认为许可证是主要推力之一。
反过来说,Apache 2.0 也允许云厂商拿它直接包装成商业产品卖,MinIO 转 AGPL 防的就是这个。不过站在用户角度,这通常不算坏事。
技术栈不同。 Rust 带来内存安全和无 GC 的运行模型,官方称在速度和资源效率上有优势。”Rust 写的所以更快”这个结论,请用自己的负载测出来,别直接采信。
目标场景明确。 官方针对数据湖、AI 训练和大数据做了高吞吐优化,如果你是这类负载,优先级可以放高一点。
几个冷静的提醒
- 成熟度存疑。 Star 涨得快不等于生产验证充分,这个项目比 MinIO 年轻得多,大规模生产案例还少。功能矩阵里标 🧪 的功能别往核心链路上放。
- README 里的功能矩阵被截断了(”S3 S”开头的条目之后内容缺失),完整列表以 GitHub 仓库为准,别只看二手转述。
- 别裸切。 先核对兼容性矩阵,再拿非关键业务试跑,确认你的客户端 SDK 和 aws cli 行为一致后再谈迁移。
一句话结论
如果 AGPL 挡住了你们用 MinIO,或者你想要一个资源占用更低的私有部署对象存储,RustFS 是当前最值得认真评估的选项。评估的方法也简单:拿兼容性矩阵对准你的实际 API 用量,逐条核对。