📌 项目地址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 训练和大数据做了高吞吐优化,如果你是这类负载,优先级可以放高一点。

几个冷静的提醒

  1. 成熟度存疑。 Star 涨得快不等于生产验证充分,这个项目比 MinIO 年轻得多,大规模生产案例还少。功能矩阵里标 🧪 的功能别往核心链路上放。
  2. README 里的功能矩阵被截断了(”S3 S”开头的条目之后内容缺失),完整列表以 GitHub 仓库为准,别只看二手转述。
  3. 别裸切。 先核对兼容性矩阵,再拿非关键业务试跑,确认你的客户端 SDK 和 aws cli 行为一致后再谈迁移。

一句话结论

如果 AGPL 挡住了你们用 MinIO,或者你想要一个资源占用更低的私有部署对象存储,RustFS 是当前最值得认真评估的选项。评估的方法也简单:拿兼容性矩阵对准你的实际 API 用量,逐条核对。

这篇文章对你有帮助吗?

发表回复