目录
- 一、先说那个不体面的开头:被骂了整整一年"假开源"
- 二、它为什么能踩中痛点:MinIO 留下的那个大坑
- 三、五分钟先跑起来:Docker 部署与 S3 兼容验证
- 四、技术上到底能不能打:看公开的压测数据
- PUT(写入):全尺寸领先,这是最硬的卖点
- GET(读取):小文件和大文件领先,中间段还落后
- 为什么快:Rust 带来的几个结构性优势
- 面向 AI 的定位:不只是"又一个 MinIO"
- 五、社区是怎么"卷"起来的:运营也是硬实力
- 六、关于"国产开源可不可信"的那道坎
- 七、写在最后
2026 年 7 月 20 日,用 Rust 写的对象存储项目RustFS的 GitHub star 数越过了 30000。
单看数字可能没什么感觉,换个参照系就有意思了:这个项目的第一行核心代码,是 2025 年 7 月 2 日才提交上去的。从开源到 30k,只用了 383 天。作为对比,同样定位在存储 / 数据库基础设施赛道、跑了十几年的老牌项目——Ceph 现在是 16.8k star,OpenEBS 9.8k,Longhorn 7.9k,GlusterFS 5.2k;连数据库里的 PostgreSQL 官方仓库也才 21.5k。一个 2024 年才真正立项的年轻项目,社区热度已经压过了这些行业基石。
更有意思的是它的开头并不体面——这个项目一度被中文技术社区公开挂成"假开源典范"“PPT 项目”。这篇文章想把它的这一年复盘清楚:它凭什么火,技术上到底能不能打,以及有哪些还没解决的短板。尽量只讲有据可查的事实和公开实测数据,不吹。
一、先说那个不体面的开头:被骂了整整一年"假开源"
时间倒回 2024 年 1 月。RustFS 在 GitHub 建了仓库,口号喊得很响——“用 Rust 做 MinIO 的开源平替,解决开源存储痛点”。
然后就没有然后了。
整整一年,仓库里只有一份孤零零的 README,代码一行没有。社区的耐心是有限的,评论区很快从期待变成质疑,再变成嘲讽:“又一个假开源”“典型的 PPT 项目”。2025 年 3 月团队公开承诺"当月一定开源",结果又跳票,基本把最后一点信任耗光了。
如果故事停在这里,它就是又一个烂尾的开源项目。转机来得毫无预兆:2025 年 7 月 2 日,没有预热、没有公关稿,6.2 万行 Rust 代码一次性全量推上了 GitHub。
社区的反应比代码来得还猛。据官方后续复盘,开源后连续 3 天进入 GitHub Trending 全语言总榜、连续 4 天高居 Rust 榜首,48 小时内 star 涨了 700+,Hacker News 上被顶上热门,中文技术圈也炸开了锅。最戏剧性的一幕是:一位早前公开怒喷过它"假开源"的知乎博主,实测之后专门发了篇《致歉 RustFS:我欠你一个 star》,转发过千。
一个被骂了一年的项目,靠"闭嘴,直接交货"完成了口碑反转。这本身就说明:在开源世界里,代码是唯一有说服力的公关稿。
二、它为什么能踩中痛点:MinIO 留下的那个大坑
RustFS 能火,运气成分有,但更关键的是它精准踩在了一个正在扩大的市场缺口上——这个缺口是 MinIO 自己挖的。
MinIO 是对象存储领域的老牌开源标杆,简洁、高效、S3 兼容,几乎是自建对象存储的默认选项。但过去几年它做了一连串让社区离心的动作,按时间线捋一下:
- 许可证收紧:从早期宽松的 Apache 2.0 改成了严苛的AGPLv3。AGPL 有个"网络使用即分发"的条款——只要你把 MinIO 作为网络服务对外提供,哪怕只改了一个配置文件,理论上都得开源你的整个代码栈。这对商业公司几乎是"劝退级"条款。
- 砍核心功能:2024 年 9 月移除了 k8s Operator 的控制台界面;2025 年 5 月又删掉了社区里最好用的 Console 管理控制台,还停止了直接的二进制分发。开源版越用越"毛坯"。
- 最后一击:2026 年 2 月,MinIO 宣布永久停止维护其开源仓库。
这一连串操作,把全球数百万习惯了 MinIO 的开发者推向了同一个问题:有没有一个现代、高性能、S3 兼容、而且商业友好的替代品?
RustFS 团队自己就是这个痛点的亲历者。据 2025 年 7 月的开源宣言复盘,团队从 2019 年就开始重度使用 MinIO,很认可它;但2022 年、2023 年 MinIO 连续两次涨价,团队直言"已经用不起了"——这才是他们下决心自研的最原始动机。比起"因为改了 License"这种抽象理由,"用不起了"要真实得多,这也是很多中小团队共同的处境。
时机上还叠加了两个大趋势:一是Rust 在基础设施领域的崛起(无 GC 停顿、编译期内存安全);二是AI 训练 / 推理让对象存储重新变成关键基础设施——传统 IO 架构撑不住 GPU 集群的高速吞吐。几股力量交汇,给了 RustFS 一个不错的窗口。
三、五分钟先跑起来:Docker 部署与 S3 兼容验证
在看压测数据之前,不妨先自己把它跑起来——RustFS 是单个静态二进制、无外部依赖,上手成本很低。最快的方式是 Docker:
# 单机快速体验:拉起一个 RustFS 实例dockerrun-d\--namerustfs\-p9000:9000\-p9001:9001\-eRUSTFS_ROOT_USER=rustfsadmin\-eRUSTFS_ROOT_PASSWORD=rustfsadmin\-v/data/rustfs:/data\rustfs/rustfs:latest# 9000 是 S3 API 端口,9001 是 Console 控制台端口# 浏览器打开 http://localhost:9001 即可进入管理界面因为它 100% 兼容 S3 协议,所以现有的 AWS CLI / SDK 代码不用改一行,把 endpoint 指过来就行:
# 用官方 AWS CLI 直接操作 RustFS,无需任何改造aws configuresetaws_access_key_id rustfsadmin aws configuresetaws_secret_access_key rustfsadmin# 建桶、上传、列举aws --endpoint-url http://localhost:9000 s3 mb s3://demo aws --endpoint-url http://localhost:9000 s3cp./test.txt s3://demo/ aws --endpoint-url http://localhost:9000 s3lss3://demo/Python 侧同样是标准boto3,把endpoint_url换掉即可:
importboto3 s3=boto3.client("s3",endpoint_url="http://localhost:9000",aws_access_key_id="rustfsadmin",aws_secret_access_key="rustfsadmin",)s3.create_bucket(Bucket="ai-dataset")s3.upload_file("train.parquet","ai-dataset","train.parquet")print([o["Key"]foroins3.list_objects_v2(Bucket="ai-dataset").get("Contents",[])])"S3 兼容"这四个字对迁移成本的意义很大:存量代码零改动、运维习惯零迁移,这也是它能快速接住 MinIO 存量用户的现实原因之一。
四、技术上到底能不能打:看公开的压测数据
故事讲得再好,存储系统最终还是要用数据说话。这里直接引用 RustFS 官方 2026 年 7 月发布的beta.10 版本压测报告(测试用 warp,4 节点 × 4 磁盘、Ubuntu 24.04、8 核 16GB Azure 环境,对比对象是 MinIO RELEASE.2026-06-06)。
想自己复现的话,warp 的压测命令也很直白:
# 用 MinIO 官方压测工具 warp 复现 PUT 测试(换成你自己的 endpoint 即可)warp put\--host=127.0.0.1:9000\--access-key=rustfsadmin\--secret-key=rustfsadmin\--obj.size=4KiB\--concurrent=32\--duration=1m# GET 测试:把子命令换成 get,obj.size 逐档扫描 1KiB~32MiB 即可对比warp get--host=127.0.0.1:9000 --access-key=rustfsadmin --secret-key=rustfsadmin--obj.size=1MiB--concurrent=32--duration=1mPUT(写入):全尺寸领先,这是最硬的卖点
| 对象大小 | RustFS (obj/s) | MinIO (obj/s) | RustFS / MinIO |
|---|---|---|---|
| 1 KiB | 2195.91 | 1470 | 1.49× |
| 4 KiB | 2150.88 | 1077 | 2.00× |
| 10 KiB | 2150.42 | 1075 | 2.00× |
| 16 KiB | 2082.30 | 1219 | 1.71× |
| 32 KiB | 2006.79 | 1155 | 1.74× |
| 100 KiB | 1850.76 | 712 | 2.60× |
| 1 MiB | 1017.72 | 470 | 2.17× |
| 4 MiB | 652.31 | 229 | 2.85× |
| 10 MiB | 301.34 | 146 | 2.06× |
| 16 MiB | 190.33 | 182 | 1.05× |
| 32 MiB | 90.67 | 69 | 1.31× |
写入这一项,RustFS 在所有测试尺寸上都胜过 MinIO,100 KiB、4 MiB 这些常见尺寸甚至能到 2.6~2.85 倍。对于写多读少、或者小文件海量写入的场景(比如日志、监控、AI 训练数据落盘),这个差距是能直接感知到的。
GET(读取):小文件和大文件领先,中间段还落后
读取这边就没那么一边倒了,得诚实说清楚:
- 1 KiB ~ 16 KiB(小文件):RustFS 全面领先,约 1.03~1.05×;
- 32 KiB ~ 1 MiB(中间段):MinIO 反过来领先,尤其在 1 MiB 附近 MinIO 优势明显;
- 4 MiB ~ 32 MiB(大文件):RustFS 重新领先,约 1.08~1.26×。
所以读取性能是"两头强、中间弱"。100 KiB ~ 1 MiB 这个区间目前仍是 MinIO 的强项,如果你的业务读负载恰好集中在这个尺寸,选型时要把这点考虑进去。官方在报告里也没回避这个短板,这种态度反而值得肯定。
为什么快:Rust 带来的几个结构性优势
性能差距不是调参调出来的,背后是几个架构选择:
- 零 GC 停顿:MinIO 用 Go 写,GC 停顿在延迟敏感场景是绕不开的;RustFS 靠 Rust 的所有权系统做到无 GC。有金融类用户反馈,迁移后延迟从百毫秒级压到了十几毫秒。
- 省资源省到夸张:二进制只有约93 MB(MinIO 约 320 MB),空闲内存能稳定压在 100 MB 以内。极端案例是有开发者在树莓派 4B 上跑出了 500 MB/s 的吞吐,直接打破"分布式存储必须上重型设备"的刻板印象。
- 底层用了
io_uring异步 IO + 自研 LSM-Tree 元数据引擎,把小文件场景的随机写转成顺序写,这也是它小文件 PUT 能翻倍的原因之一。 - 国产化适配:在鲲鹏 920 平台上性能甚至反超 x86 约 15.3%,对信创场景是个加分项。
面向 AI 的定位:不只是"又一个 MinIO"
值得单独提的是,RustFS 并没有把自己定位成 MinIO 的简单复刻,而是明显在往 AI 基础设施方向走:
- 支持RDMA 协议、内置S3 Table,瞄准 GPU 集群的高速数据吞吐;
- 协议面比一般对象存储更宽:S3 / WebDAV / Swift / FTP(s),还罕见地支持了MCP(Model Context Protocol),这对 Agent 生态是个前瞻性的接口。
这块布局能不能兑现还要看后续,但至少方向上,它想解决的是"AI 时代的存储"这个更大的问题,而不只是接盘 MinIO 的存量用户。
五、社区是怎么"卷"起来的:运营也是硬实力
技术能打是基础,但 383 天冲到 30k、全球贡献者超过 160 位、装机量 150 万+ 台、Docker 镜像拉取 5 亿次——光靠技术解释不了这个增速。它的社区运营有几个做法值得同行参考:
- 真心降低贡献门槛。它的 “good first issue” 是真的对新手友好:改错别字、补注释、优化教程都算,中文文档细致到树莓派单机部署、国产芯片适配。这让第一次参与开源的人也能顺利提上 PR。
- 用真实认可留人,而不是搞虚的积分体系。Commit 致谢、把活跃贡献者吸纳进核心讨论组、给贡献者寄定制周边——这些比"贡献值排行榜"更能留住人。
- 需求响应快。国密算法两个月就出了稳定版;社区反馈 Docker 改端口无法登录的问题后,团队直接把前端 Console 和后端 Endpoint 做了深度整合重构,并为部署困扰公开致歉。这种"认错 + 快速修"的姿态,在开源社区里很稀缺。
- 迭代节奏稳。长期保持每周至少一版的发布频率(通常周三),从 alpha 一路走到 2026 年 4 月的 Beta,累计 2850+ 次提交、99 个 alpha 版本。
一句在社区里流传的话,大概能概括它的运营哲学:“三十个活跃贡献者,比一千个僵尸 star 有用得多。”
六、关于"国产开源可不可信"的那道坎
RustFS 是国产项目,躲不开一个灵魂拷问:会不会先开源吸引用户、再闭源收割(所谓 rug-pull)?尤其它要求贡献者签 CLA,社区里确实有人为此担忧。
面对这个质疑,团队在 2026 年 2 月公开做了承诺:核心仓库将永久保持开源;要求签 CLA 只是为了规避未来的知识产权法律风险,而不是为闭源铺路;商业化走"核心开源 + 企业级增值服务"的路线。
承诺归承诺,能不能兑现要交给时间检验。但至少在 MinIO 刚宣布永久停维、整个社区都在反思"开源基础设施的未来在哪"的当口,RustFS 把话摆到了台面上——这一点,比闷声不吭要好。顺带一提,在那场 Hacker News 讨论里,连顶级向量数据库 Milvus 这样的用户都给了它不错的评价。
七、写在最后
RustFS 这一年最值得琢磨的,其实不是"30k star"这个数字本身,而是它验证了一条朴素的路径:把一个场景做透、技术做实、社区做活,不用喊"替代国外产品"的口号,市场和开发者自然会用脚投票。
它起步于一个被嘲笑一年的 README,靠一次"直接交货"完成翻身,又精准接住了 MinIO 留下的市场空缺。技术上它写入性能领先明显、面向 AI 的布局有想法,但成熟度、部分读取场景、生态完善度都还有功课要补。
对做存储选型的工程师来说,它已经完全值得你去 clone 一份、跑一轮自己的压测——毕竟,在对象存储这个曾经沉闷的领域里,好久没有出现过这么有意思的搅局者了。
# 想深入就从源码开始gitclone https://github.com/rustfs/rustfs.gitcdrustfs&&cargobuild--release数据与事实来源:RustFS 官方博客(blog.rustfs.com)、官方发布的 beta.10 压测报告、GitHub 官方仓库,以及第三方技术社区(掘金、CSDN、Hacker News)的公开报道与实测。文中性能数据均来自官方公开压测,建议读者在自己的业务场景下复测验证。