RustFS hits 1.0 and becomes the reference self-hosted S3 alternative after MinIO’s license shift
On September 18, 2026, RustFS shipped its 1.0.0 GA release, with 32,000 GitHub stars and 2.7 million instances deployed since its first commit in February 2024. It is the Rust, Apache 2.0 S3 object storage establishing itself as MinIO’s successor for self-hosted deployments.
September 18, 2026. RustFS ships its 1.0.0 release, officially entering general availability (GA). February 2024. The first line of code. July 2025. The source code goes public. Why it matters: in just over two years, this distributed object storage written in Rust has become the self-hosted S3 alternative the community has been waiting for since MinIO moved toward the AGPL. The timing is no accident: the GA lands the same week the project was featured in the selfh.st weekly roundup, and the message to homelab owners and SREs alike is that a permissive-license object store can now be the default.
The gap MinIO left behind
MinIO was long the default choice for self-hosted S3 object storage. But in 2025, its license change — adopting the AGPL for parts of its stack — pushed a slice of the community toward a permissive-license alternative. We covered that shift in our analysis of MinIO’s open-source archive. RustFS stepped into that gap with a clean proposition: the same S3 compatibility, under Apache 2.0.
The positioning is unapologetic. The GitHub repository leads its README with “2.3× faster than MinIO for 4 KB objects”, and the homepage calls itself a “drop-in replacement for MinIO and Amazon S3”. For a self-hoster who wants neither a support contract nor a license-compliance headache, that argument lands.
Why Rust changes the game
The choice of Rust is not cosmetic. Object storage moves bytes in bulk, in parallel, under heavy concurrency — exactly the terrain where C or C++ memory errors turn into data corruption or exploitable flaws. Rust eliminates use-after-free, buffer overflows, and data races at compile time, three bug classes that have historically supplied most storage-server vulnerabilities.
For a self-hoster, the translation is direct: data integrity no longer depends on the absence of human error inside unsafe code. That argument carries weight when you are entrusting backups or personal data to a single binary.
Storage is also one of the few places where a memory bug is not a crash but a silent wrong byte — a corrupted block that only surfaces weeks later, during a restore. That is why the guarantee that certain bug classes cannot exist at all, rather than being merely unlikely, matters more here than in almost any other workload.
What 1.0.0 locks in
GA means one thing: the core — object storage — is stable and ready for production. The covered surface is broad:
- Data: full bucket and object lifecycle, multipart upload, erasure coding, tiering, and S3 Tables with an Iceberg REST catalog built into the storage kernel.
- Protocols: S3 API, WebDAV, Swift, FTP/FTPS, and MCP.
- Security: IAM, OIDC, KMS integration, server-side encryption (SSE), STS, auditing, and mTLS.
- High availability: distributed deployment, pool expansion, rebalancing, self-healing nodes, site replication.
The adoption curve lends weight to the promise: 32,000 stars on GitHub, over 10 million image pulls on Docker Hub, 2.7 million deployed instances, and 160 contributors. The project joined the NVIDIA Inception program and has trended on GitHub nine times.
The inclusion of S3 Tables — an Iceberg REST catalog inside the storage kernel — is the most forward-looking item on that list. It means RustFS can serve as the query-adjacent store for a data lake workload, not just as a dumb blob bucket.
Migration and the ecosystem
S3 compatibility is the crux of migration. RustFS aims for a drop-in replacement: existing clients — the AWS SDK, MinIO’s mc, rclone, s3fs — should be able to point at a RustFS instance without rewriting anything. The promise is not “reimplement your integration” but “change the URL and the key set”.
RustFS is not alone in the niche. Garage — also in Rust — targets lightweight multi-node storage for small clusters. SeaweedFS covers a wider surface (files, blobs, FUSE mounts), at the cost of greater complexity. Ceph remains the standard for very large volumes, but its operational curve is another matter. RustFS sits in between: simpler than Ceph, more complete than a bare S3 gateway. Its natural home is the mid-size S3 deployment — precisely the case most shaken by MinIO’s license shift. And its built-in Iceberg catalog already puts it on the path to a homegrown data lake.
One caveat to keep honest: “S3-compatible” is a spectrum. RustFS implements the core API surface most clients rely on, but exotic features — certain bucket policies, lifecycle rules, or event destinations — may lag behind Amazon S3 or MinIO. Validate your specific SDK calls against a test instance before betting a production migration on the word “drop-in”.
Up and running in one command
Getting started remains the strong suit of a project designed for self-hosting. The official docker-compose-simple.yml boots an instance in seconds:
git clone [email protected]:rustfs/rustfs.git
cd rustfs
docker compose -f docker-compose-simple.yml up -d Before launching, you must change RUSTFS_ACCESS_KEY and RUSTFS_SECRET_KEY — the defaults are public, and an exposed instance running those credentials is an open door. The console is then reachable at http://ip:9001.
What remains to be proven
Reaching GA does not erase the questions. The project is young: the stable version has two years and seven months of history, against more than a decade for MinIO. The performance claims — the 2.3× on 4 KB objects — come from the vendor and deserve validation against your real workload before a cutover. The roadmap is explicit about what is next: S3 Vectors and a 2.0 built around AI, aimed at equipping AI datacenters. For comparison, versitygw covers a neighboring need — exposing a filesystem as S3 — but does not claim RustFS’s distributed scale.
Concretely, before migrating, a warp benchmark (the MinIO tool) or s3bench over 4 KB, 1 MB, and 10 MB objects gives a real sense of throughput on your hardware — disks, network, and CPU count as much as the software. Test erasure coding on a reduced pool too: that is where the availability promises are confirmed or refuted.
For a self-hoster, the trade-off is therefore nuanced. RustFS is a serious candidate for a new S3 object store — a lab, a homelab, an intermediate object store before the cloud — but a cutover from MinIO in production is planned, benchmarked, and tested in parallel, not rushed on a Friday afternoon.
Verdict
RustFS 1.0.0 marks a real milestone: the self-hosted successor to MinIO exists, it is in Rust, under Apache 2.0, and it declares itself production-ready. If you are standing up a new self-hosted S3 store, start with RustFS — the permissive license and one-command install argue for it. If you already run MinIO in production, there is no rush: benchmark RustFS on your workload before migrating, and watch the AI roadmap if your small-object volumes are exploding. Either way, mark the date: MinIO’s lock on self-hosted object storage just broke.