Why MinIO's AGPL License Is a Problem
MinIO is a popular, Go-based, S3-compatible object storage system—but it ships under AGPLv3. Unlike GPL, which triggers open-source obligations only on distribution, AGPL also triggers when software is offered as a network service. In theory, running a public-facing S3 service on MinIO could require open-sourcing your entire server-side codebase, including business logic. Google bans AGPL dependencies internally, and Chinese tech giants (Alibaba, Tencent, ByteDance) maintain similar red lines.
Alternatives are limited: Ceph is heavy and complex, AWS S3 is expensive, and self-building is infeasible for most teams. This gap is what RustFS targets: a MinIO-equivalent rewritten in Rust, released under Apache 2.0.
What Is RustFS?
RustFS is an S3-compatible distributed object storage system written in Rust, under Apache 2.0. Its two differentiators reinforce each other:
1. License: Apache 2.0 (permissive, business-friendly) vs. MinIO's AGPLv3 2. Language: Rust (memory safety, zero-cost abstractions) vs. Go (GC + runtime)
Feature Matrix vs. MinIO
| Feature | RustFS | Notes | |------|--------|------| | S3 Core API | ✅ | Full S3 compatibility | | Distributed / single-node modes | ✅ | Scale out or minimal deploy | | Versioning | ✅ | Object history | | Object Lock (WORM) | ✅ | Compliance retention | | Server-side encryption | ✅ | SSE-S3 / SSE-KMS | | Bitrot protection | ✅ | Silent corruption detection | | Erasure coding + self-healing | ✅ | Data redundancy | | Bucket & site replication | ✅ | Cross-region sync / DR | | Lifecycle management | ✅ | Auto-tiering/expiry | | IAM / OIDC / SSO | ✅ | Enterprise identity integration | | Swift API, SFTP/FTPS/WebDAV | ✅ | Multi-protocol | | Kubernetes Helm | ✅ | Cloud-native deployment | | S3 Tables (Iceberg REST) | 🧪 Preview | Data-lake native |
S3 Tables: Toward Data-Lake-Native Object Storage
AWS re:Invent 2024 introduced S3 Tables, natively integrating the Iceberg table format so S3 itself manages table metadata and manifests—removing the need for separate catalog services like Glue, Nessie, or Polaris. RustFS brings this to open source: its Iceberg REST Catalog–compatible implementation lets PyIceberg, DuckDB, and Spark connect directly, without AWS. The feature is in Preview, but the direction is clear: object storage is evolving from "storing files" to "storing tables."
Bitrot Protection
Object data silently corrupts: individual bits flip on disks/SSDs without filesystem detection, and backups faithfully copy the corruption. At petabyte scale, hundreds of bits may flip daily. RustFS computes SHA-256 or Highway Hash checksums per object block and verifies on read, mirroring MinIO's approach—Rust's std::simd makes SIMD-accelerated hashing easier than Go's assembly/cgo route.
Rust vs. Go: The Language Choice
- Go strengths: fast development, mature concurrency (goroutines/channels), rich ecosystem, single-binary deployment
- Rust strengths: compile-time memory safety (no data races), zero-cost abstraction, no GC pauses, direct system access
Benchmarks
RustFS's README embeds a stress-test video comparing throughput against MinIO on intentionally modest hardware: 2-core Intel Xeon Sapphire Rapids 8475B, 4GB RAM, 15Gbps network, 4×40GB SSDs. On constrained hardware, Go's GC pauses become more frequent, favoring Rust. MinIO has not publicly responded.
The License War: AGPL vs. Apache 2.0
> RustFS is released under the permissible Apache 2.0 license, avoiding the restrictions of AGPL.
This is a business statement, not a technical one. AGPL advocates (MongoDB, Elastic, MinIO) see it as protection against cloud vendors monetizing open source without contributing back; Apache 2.0 advocates argue AGPL scares off enterprise adopters. Precedents are mixed—Elastic's move to AGPL led to the OpenSearch fork, while MongoDB's shift to SSPL preceded stock gains. RustFS's choice is pragmatic: it wants enterprise adoption, not license purity.
The Rust Moment for Object Storage
Rust has steadily absorbed C/C++ territory: the Linux kernel, Windows kernel, Cloudflare's Pingora, AWS's Firecracker. Object storage is next. As the foundation of Kubernetes persistent volumes, AI training pipelines, and data lakes, a shift from Go to Rust raises the memory-safety bar for the whole cloud-native stack.
RustFS is early-stage (298 stars vs. MinIO's 50k+), but the combination of Apache 2.0 + Rust + S3 compatibility + Iceberg REST is unique in the field. For teams avoiding AGPL, it's a project to watch.
---
Project: https://github.com/rustfs/rustfs Docs: https://docs.rustfs.com/ License: Apache 2.0 | Language: Rust | Stars: 298 (GitHub Trending, 2026-09-18)