跪拜 Guibai
← All articles
Backend · Open Source · Rust

RustFS Lands as an Apache 2.0 S3-Compatible Object Store, Targeting MinIO's AGPL Gap

By 对象存储与RustFS ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

MinIO's AGPLv3 relicense left a hole for teams that need an embeddable, closed-source-compatible S3 layer. RustFS fills that hole with a permissive license and a Rust-based architecture that cuts memory overhead and eliminates GC pauses, making it a practical drop-in for edge nodes, lightweight VMs, and commercial products where legal and operational simplicity matter.

Summary

RustFS enters the self-hosted object storage space as a direct, Apache 2.0-licensed alternative to MinIO. It ships as a single statically linked binary under 100 MB, with idle memory below 100 MB and no JVM or external metadata database required. The project covers core S3 data-plane operations—multipart uploads, presigned URLs, versioning, lifecycle policies, and erasure coding—and supports horizontal scaling in distributed mode. Vendor benchmarks show 2.3x the PUT throughput of MinIO on 4 KB objects, though GET performance in the 100 KiB–1 MiB range still trails. The license is the structural differentiator: after MinIO's 2021 move to AGPLv3, RustFS's permissive Apache 2.0 terms remove the copyleft obligation for companies embedding the storage layer into proprietary products or closed-source deployments. Adoption signals are rising—30,000 GitHub stars in under 400 days and growing side-by-side comparisons in technical blogs—but the piece stresses that real validation requires running s3-tests against your own workloads, not reading trend charts.

Takeaways
RustFS is a single static binary (≈93 MB) with no JVM, no etcd, and idle memory under 100 MB.
PUT throughput on 4 KB objects is roughly 2.3× MinIO's in vendor benchmarks on identical hardware.
GET performance in the 100 KiB–1 MiB range currently lags behind MinIO, a gap the project acknowledges.
License is Apache 2.0, avoiding the AGPLv3 copyleft obligations that MinIO introduced in 2021.
Core S3 features are covered: multipart upload, presigned URLs, versioning, lifecycle policies, erasure coding, and distributed mode.
Migration cost from MinIO is near zero—existing S3 toolchains (aws-cli, rclone, SDKs) work without changes.
Validation advice: run s3-tests against a Docker instance, migrate a small bucket with rclone, then canary real read traffic for a week before switching writes.
Conclusions

MinIO's license change created a market opening that RustFS is explicitly designed to capture, and the project's messaging frames AGPL as a legal liability rather than a philosophical stance.

The performance profile is asymmetric—dominant on small-object writes but weaker on mid-range reads—which means adoption decisions hinge on workload shape, not a single benchmark number.

Rust's memory-safety guarantees and lack of GC are pitched as operational advantages (fewer OOM kills, fewer CVEs), not just implementation details, reflecting a broader trend of rewriting infrastructure in Rust for long-running, high-concurrency services.

Star count is treated as a signal of unmet demand rather than production readiness; the article repeatedly warns that only workload-specific testing and community responsiveness determine real viability.

Concepts & terms
Erasure Coding
A data protection method that splits data into N fragments and computes M parity fragments, distributing them across different disks or nodes. It allows data reconstruction even when some disks fail, using less storage overhead than full replication.
AGPLv3
The GNU Affero General Public License v3, a strong copyleft license that requires anyone who modifies the software and offers it as a network service to publicly release the modified source code. MinIO switched to this license in 2021, creating legal obligations for closed-source commercial deployments.
Presigned URL
A time-limited URL generated using the storage service's secret key that grants temporary read or write access to a specific object without exposing the actual credentials, commonly used for secure file downloads and upload callbacks.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗