Open-Source Wikis

/

MinIO

/

MinIO

minio/minio

MinIO

MinIO is a high-performance, S3-compatible object storage server written in Go. A single binary runs in standalone mode on a few directories or scales to a distributed deployment of dozens of nodes with hundreds of drives, using erasure coding to keep data available through disk and node failures.

Status note. The repository is no longer maintained for the community edition. The README at README.md directs new users to MinIO AIStor (free standalone) or AIStor Enterprise. The codebase here is the source of the AGPLv3 community edition and remains the upstream for AIStor.

What MinIO does

  • S3-compatible object storage. Implements the Amazon S3 REST API for buckets, objects, multipart uploads, ACLs, lifecycle, versioning, replication, encryption, and object lock. Implementation lives in cmd/api-router.go, cmd/object-handlers.go, cmd/bucket-handlers.go, and cmd/object-multipart-handlers.go.
  • Erasure-coded storage backend. A custom erasure-coding layer (cmd/erasure*.go) splits objects into data and parity shards across drives so a deployment can tolerate the loss of half its drives or nodes.
  • Distributed cluster. Multiple servers form a single namespace via a custom REST grid (cmd/storage-rest-server.go, internal/grid/). Server pools let an operator expand capacity by adding new pools of nodes (cmd/erasure-server-pool.go).
  • IAM and STS. Local users, groups, policies, and external identity providers (LDAP, OIDC) plus AWS-style STS endpoints for temporary credentials. See cmd/iam.go, cmd/sts-handlers.go, and internal/config/identity/.
  • Replication and tiering. Bucket replication to other S3 endpoints and lifecycle-driven tiering to Azure, GCS, S3, or another MinIO. Implementations: cmd/bucket-replication.go, cmd/site-replication.go, cmd/tier.go, cmd/warm-backend-*.go.
  • KMS-backed server-side encryption. SSE-S3, SSE-KMS, and SSE-C support backed by a KMS abstraction (internal/kms/, internal/crypto/).
  • Operational features. Embedded console (via github.com/minio/console), Prometheus metrics v2 and v3, audit logging, FTP/SFTP servers, S3 Select, batch jobs, healing, scrubbing, and cluster-wide notifications.

Who uses it

MinIO targets engineers who need an S3-compatible object store on premises or in private cloud — for AI/ML pipelines, analytics, backup, and as a drop-in replacement for S3 in CI and dev. The README explicitly positions it for "AI/ML, analytics, and data-intensive workloads."

Quick map of the codebase

graph TD
    M[main.go] --> CMD[cmd/ — server runtime]
    CMD --> S3[S3 API handlers]
    CMD --> ADM[Admin API handlers]
    CMD --> EC[Erasure-coded backend]
    CMD --> IAM[IAM and STS]
    CMD --> NS[Namespace lock + DSync]
    CMD --> REPL[Replication + Site replication]
    CMD --> SCAN[Data scanner + Healing]
    EC --> XL[xl-storage on local drives]
    EC --> NET[storage-rest peer-to-peer]
    INT[internal/ — reusable building blocks]
    CMD --> INT
    INT --> KMS[kms / crypto]
    INT --> EVT[event / target/*]
    INT --> CFG[config]
    INT --> GRID[grid — RPC]
    INT --> HTTP[http]

Where to go next

License

Source is licensed under AGPLv3. Documentation under CC BY 4.0. Compliance notes in COMPLIANCE.md and NOTICE.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

MinIO – MinIO wiki | Factory