Open-Source Wikis

/

MinIO

/

By the numbers

minio/minio

By the numbers

Data collected on 2026-04-30, against master at commit 7aac2a2c5b7c882e68c1ce017d8256be2feea27f.

Size

The repo is overwhelmingly Go, with a heavy supporting cast of shell harnesses and operational docs.

xychart-beta horizontal
    title "Lines of code by language (rough)"
    x-axis ["Go", "JSON", "Markdown", "Shell", "YAML"]
    y-axis "Lines" 0 --> 360000
    bar [350006, 14605, 11931, 7757, 5087]
Language Files Approx. lines
Go 902 350,006
JSON 23 14,605
Markdown 86 11,931
Shell 53 7,757
YAML 39 5,087
.yml 17 649

Splitting Go further:

Bucket Approx. lines
Production code (cmd/, internal/, excluding _test.go and _gen.go) 205,151
Test code (*_test.go) 96,813

cmd/ is 20 MB across 470 files; internal/ is 4 MB across 455 files; docs/ is 11 MB across 218 files (mostly shell harnesses and tutorial markdown).

Activity

  • Total commits: 12,565 across the project's lifetime (since the initial commit on 30 Oct 2014).
  • Tags / releases: 523 historical release tags. The most recent are RELEASE.2025-10-15T17-29-55Z and RELEASE.2025-09-07T16-13-09Z. The latest commit on master is dated 12 Feb 2026.
  • Yearly commit volume:
Year Commits
2014 302
2015 1,986
2016 1,504
2017 806
2018 836
2019 830
2020 1,375
2021 1,405
2022 1,193
2023 1,141
2024 984
2025 201
2026 2

The slowdown in 2025 lines up with the public note in README.md that the repository is no longer actively maintained.

Bot-attributed commits

A scan of Co-authored-by: trailers across all commits returned ~18 bot-attributed commits — a tiny fraction of the 12,565 total. No bot accounts appear in the top contributors. AI-assisted work performed via inline tools (Copilot etc.) leaves no git trace, so this is a strict lower bound. MinIO has historically been written by a small, hands-on core team.

Complexity hotspots

The biggest production source files in the repo, by raw byte count:

File Bytes (≈)
cmd/site-replication.go 189,199
cmd/metrics-v2.go 136,834
cmd/object-handlers.go 123,497
cmd/bucket-replication.go 121,043
cmd/admin-handlers.go 102,056
cmd/api-errors.go 95,264
cmd/xl-storage.go 93,937
cmd/admin-handlers-users.go 92,766
cmd/erasure-server-pool.go 91,306
cmd/iam-store.go 89,181

These ten files cover most of the surface a contributor will touch when working on replication, S3 verbs, the admin API, drives, and IAM. Each of them is also reflected in the Cleanup opportunities page.

The top auto-generated files (excluded above) are the MessagePack *_gen.go and *_gen_test.go siblings, generated by the tinylib/msgp go:generate directive in main.go.

TODO/FIXME/HACK

A grep for TODO, FIXME, or HACK in cmd/ and internal/ Go sources returns roughly 83 matches. That is small for a 200K-line codebase. See Cleanup opportunities for the highlights.

Test-to-code ratio

*_test.go lines / production lines ≈ 96,813 / 205,151 ≈ 0.47. About 1 line of test for every 2 lines of production code, which is in line with mature Go infrastructure projects. Many of MinIO's "tests" are actually shell-driven integration scripts in docs/ and buildscripts/ that the tables above don't include.

Dependencies

go.mod has ~80 direct dependencies and dozens more indirect dependencies. A hand-picked sample:

Layer Library
Erasure coding github.com/klauspost/reedsolomon
Compression github.com/klauspost/compress, pgzip, pierrec/lz4/v4, pbzip2
Hashing / encryption github.com/minio/highwayhash, github.com/minio/sio, secure-io/sio-go, golang.org/x/crypto
KMS github.com/minio/kms-go/{kes,kms}
HTTP routing github.com/minio/mux, github.com/rs/cors
MessagePack codegen github.com/tinylib/msgp, github.com/philhofer/fwd
Object storage SDKs github.com/minio/minio-go/v7, cloud.google.com/go/storage, github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Identity github.com/coreos/go-oidc/v3, github.com/go-ldap/ldap/v3, github.com/lestrrat-go/jwx/v2, github.com/golang-jwt/jwt/v4
Notification targets github.com/IBM/sarama (Kafka), nats.go, eclipse/paho.mqtt.golang, rabbitmq/amqp091-go, lib/pq, go-sql-driver/mysql, gomodule/redigo, nsqio/go-nsq, elastic/go-elasticsearch/v7
Console UI github.com/minio/console
FTP / SFTP goftp.io/server/v2, pkg/sftp
Coordination go.etcd.io/etcd/client/v3
Metrics github.com/prometheus/client_golang

See reference/dependencies for an annotated list.

Releases

523 release tags shipped between 2014 and 2025 with the RELEASE.<UTC-timestamp>Z format produced by buildscripts/gen-ldflags.go. The release cadence has historically been 1–2 a month, sometimes more during heavy feature development.

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

By the numbers – MinIO wiki | Factory