MinIO Is Deprecated: Best Alternatives for S3-Compatible Storage

Sep 23, 20267 min read

For years, MinIO was the obvious answer whenever an engineering team needed S3-compatible object storage outside AWS. You wanted an S3-compatible API on Kubernetes? You needed object storage for backups? You wanted something you could run locally with Docker Compose? The answer was the same - MinIO.

That recommendation has changed.

In 2026, the open-source MinIO project is no longer a maintained project in the way engineers historically expected it to be. The upstream GitHub repository was archived on April 25, 2026, and its README explicitly states that the repository is no longer maintained.

That raises an obvious question:

What should replace MinIO?

There isn't a single answer. Three projects are particularly worth looking at: Garage, RustFS, and SeaweedFS. All three provide S3-compatible storage, but they are built around quite different ideas. Garage focuses heavily on decentralized and geographically distributed object storage, RustFS is particularly interesting for engineers looking for something close to the MinIO model, while SeaweedFS takes a much broader approach and combines object storage with distributed file storage and other storage interfaces.

The important thing is therefore not simply to find "the next MinIO", but to understand what each project is actually designed to do.

What actually happened to MinIO?

The MinIO repository on GitHub is now archived and read-only. Its current README states:

"THIS REPOSITORY IS NO LONGER MAINTAINED."

For any production engineer, this should immediately raise a question: what are the alternatives? But let's be realistic. Thousands of projects are still running MinIO, and many of them are running perfectly fine on the latest version they deployed. A running MinIO cluster does not magically stop serving objects because the GitHub repository was archived. If your cluster is healthy and you already have the required binaries or container images, it can continue operating. The bigger problem is the future lifecycle of the installation.

In September 2026, the minio/minio repository on Docker Hub was archived, and users started reporting that both minio/minio and minio/mc could no longer be pulled from Docker Hub. This is exactly the kind of failure that makes infrastructure engineers nervous. Imagine that your application hasn't changed at all. Your Kubernetes manifests are still valid, your infrastructure code is still valid, and your production cluster is still running. Then a node fails. You need to recreate the workload, and Kubernetes tries to pull:

image: minio/minio:latest

But the image is no longer available.

If you haven't mirrored the image to your own registry, your deployment is blocked. You may end up relying on a colleague who still has the image locally, or trying to recover an old image from somewhere else.

Alternative #1: Garage

Garage is a distributed object storage system written in Rust that implements the S3 API.

Its philosophy is somewhat different from MinIO. Garage is particularly interesting if your goal isn't simply "I want a server that looks like MinIO", but rather "I want distributed object storage that can operate across multiple locations."

Garage uses a decentralized architecture where nodes participate in the distributed storage system. This makes it particularly interesting for deployments where you might have several relatively small nodes spread across different locations instead of one large storage cluster.

For example, you could have infrastructure distributed across several sites:

flowchart LR subgraph SiteA["Site A (Primary DC)"] A1["Node 1"] --- A2["Node 2"] --- A3["Node 3"] end subgraph SiteB["Site B (Secondary / Edge)"] B1["Node 4"] --- B2["Node 5"] --- B3["Node 6"] end SiteA <-->|Geo-distributed sync / WAN| SiteB

This is one of the areas where Garage differs significantly from the traditional MinIO mental model.

Alternative #2: RustFS

RustFS takes a different approach from Garage, although it shares some important characteristics. It is also written in Rust and provides an AWS S3-compatible API.

For MinIO users, the interesting part is its design philosophy. RustFS explicitly describes its architecture as being inspired by MinIO's design philosophy, which makes it particularly interesting when your starting point is: "I already know MinIO, and I want something that feels familiar."

RustFS uses a distributed model consisting of nodes and drives. Conceptually, it looks like:

flowchart LR Client["S3 Client Traffic"] --> N3 & N2 & N1 subgraph Cluster["RustFS Cluster (Erasure Set)"] subgraph N3["Node 3"] D5["Drive 5"] D6["Drive 6"] end subgraph N2["Node 2"] D3["Drive 3"] D4["Drive 4"] end subgraph N1["Node 1"] D1["Drive 1"] D2["Drive 2"] end end

The cluster is divided into sets, with drives distributed across nodes. For engineers coming from MinIO, the mental model is relatively familiar. This is what makes RustFS one of the most obvious projects to investigate if the main objective is replacing an existing MinIO installation while keeping the application layer largely unchanged.

That doesn't mean that migration is completely transparent. S3 compatibility needs to be tested against the actual application workload, and the operational model of the new cluster still needs to be understood.

Alternative #3: SeaweedFS

SeaweedFS takes a broader approach than Garage and RustFS. While both are primarily distributed object-storage systems, SeaweedFS is designed as a distributed storage platform supporting S3, FUSE, HDFS, WebDAV, SFTP, and other interfaces.

For MinIO users, this makes SeaweedFS interesting when S3 is only part of the requirement. If you simply need an S3-compatible API, SeaweedFS may provide more infrastructure than necessary. But if you need multiple storage interfaces or have workloads involving very large numbers of small objects, its architecture becomes more compelling.

Conceptually, it looks like:

flowchart LR subgraph Interfaces["Storage Interfaces"] S3["S3 API"] FUSE["FUSE"] HDFS["HDFS"] end subgraph Cluster["SeaweedFS Cluster"] Storage["Storage Layer"] end Interfaces --> Cluster

SeaweedFS separates storage into master servers, volume servers, and the Filer. The master manages cluster metadata, volume servers store the data, and the Filer provides a filesystem-like namespace. The S3 gateway sits on top of this architecture and can be scaled independently.

Another notable feature is its support for both replication and erasure coding, together with a volume-based design that works well with large numbers of small objects. This makes SeaweedFS worth considering for datasets, thumbnails, generated files, and other high-object-count workloads.

The trade-off is complexity. SeaweedFS offers considerably more functionality than a simple S3-compatible object store, so the additional flexibility needs to be weighed against the operational overhead.

Garage vs RustFS vs SeaweedFS

At this point, it should be clear that these three projects aren't simply three interchangeable MinIO clones.

They all provide S3-compatible storage, but they target somewhat different requirements.

Garage is focused on decentralized object storage and is particularly interesting for geographically distributed or multi-site deployments.

RustFS is the most natural project to investigate when your primary requirement is replacing MinIO with another distributed S3-compatible object store while retaining a relatively familiar architecture.

SeaweedFS takes a broader approach and makes sense when object storage is only one part of the problem. Its ability to expose the same underlying storage through S3, filesystem, HDFS, and other interfaces can be valuable for larger or more diverse storage environments.

The important distinction is therefore not simply performance or feature count. It is the architecture you want to operate.


So, Garage, RustFS or SeaweedFS?

GarageRustFSSeaweedFS
Primary languageRustRustGo
S3 compatibilityYesYesYes
ArchitectureDistributed, decentralizedDistributed, decentralizedLayered distributed storage
Primary focusDistributed object storageS3 object storageObject + file storage platform
MinIO migrationRequires architectural changesConceptually closerRequires architectural changes
KubernetesYesYesYes
Geo-distributionStrong focusSupportedSupported
Filesystem accessNoNoYes
FUSENoNoYes
HDFSNoNoYes
Small-object workloadsGood fitGood fitStrong focus
Erasure codingSupportedSupportedSupported
Operational complexityRelatively focusedRelatively focusedHigher
Best suited forMulti-site / decentralized storageMinIO replacementMulti-purpose distributed storage
Migration complexityMediumLow–mediumMedium–high

This table is not intended to declare a winner. The projects solve different problems, and the right choice depends on the workload and architecture you need to support.

If you have multiple locations and want decentralized storage that treats geographic distribution as a fundamental part of the architecture, Garage is worth investigating.

If your main requirement is replacing MinIO with a modern, Rust-based, distributed S3-compatible object store that follows a relatively familiar model, RustFS is an obvious candidate.

If you need more than S3 — for example, filesystem access, HDFS, huge numbers of small objects, or multiple storage interfaces — SeaweedFS deserves serious consideration.

The important thing is that you don't have to choose the project with the longest feature list. You have to choose the architecture that matches your workload.

Conclusion

MinIO may no longer be the default choice it once was, but that doesn't mean there is a single project waiting to take its place. Garage, RustFS, and SeaweedFS represent three different directions for self-hosted object storage. Garage focuses on decentralized, multi-site storage. RustFS is the closest fit for teams looking for a familiar distributed S3 model. SeaweedFS goes beyond object storage and provides a broader storage platform with multiple interfaces and a design particularly suited to large numbers of objects. The era of treating MinIO as the automatic default for self-hosted S3 is over. The right replacement depends on the operational model, workload, and architecture you want to maintain long after the migration is complete.

For an existing MinIO deployment, the decision should not start with "Which project is the best?". It should start with "What do we actually need from our storage layer?"

Once you answer that question, choosing between Garage, RustFS, and SeaweedFS becomes much less about finding the next MinIO and much more about choosing the storage architecture that actually fits your infrastructure.

Evaluate your storage architecture

Not sure which S3-compatible replacement is right for your stack? Schedule a consultation with u11d to discuss your specific infrastructure constraints.

A person sitting and typing on a laptop keyboard

Frequently Asked Questions

Is my current MinIO installation broken?

No. A running MinIO cluster will continue to serve objects as long as your existing infrastructure is healthy and you have the binaries or images. The issue is strictly related to future lifecycle, maintenance, and the inability to pull images from public registries.

What is the primary risk of continuing to use MinIO?

The primary risk is operational fragility. Because images are no longer available on Docker Hub, you cannot easily spin up new nodes or recover from a failed deployment if you haven't already mirrored the images to your own private registry.

Which alternative is the closest drop-in replacement for MinIO?

RustFS is generally considered the most familiar choice. Its architecture and design philosophy are closely inspired by MinIO, making it a natural starting point for teams wanting to maintain a similar mental model.

When should I choose SeaweedFS over other options?

SeaweedFS is best when you need a multi-purpose platform. Choose it if you require more than just S3, such as FUSE mounts, HDFS support, or high-performance handling of massive numbers of small objects.

Is Garage suitable for single-site data centers?

While Garage can work in single-site deployments, its architecture is specifically optimized for decentralized, multi-site, and geo-distributed storage. It is the best choice if your infrastructure spans different locations.

RELATED POSTS
Daniel Kraszewski
Daniel Kraszewski
Head of Engineering

Stop Overpaying for EKS: Why Your Node Groups Won't Scale Down

Aug 27, 202610 min read
Article image
Robert Szczepanowski
Robert Szczepanowski
Senior Software Engineer

Implementing Postgres Row-Level Security in Next.js: The Drizzle Multi-Tenant Pattern

Aug 26, 20267 min read
Article image
Paweł Swiridow
Paweł Swiridow
Senior Software Engineer

AWS ALB Fixed IP: Using Global Accelerator for Static Addresses

Aug 19, 20267 min read
Article image