finds.dev← search

// the find

minio/minio-go

★ 2,961 · Go · Apache-2.0 · updated Jun 2026

MinIO Go client SDK for S3 compatible object storage

The official Go client SDK for MinIO and any S3-compatible storage (AWS, GCS, Cloudflare R2, etc.). It covers the full S3 API surface — bucket operations, multipart uploads, presigned URLs, SSE, lifecycle rules, replication — and is maintained by the MinIO team, so it tracks new MinIO-specific extensions as they ship.

The credentials package is genuinely well thought out: chain-based resolution, IAM role support, STS web identity, and LDAP identity all work without you wiring anything special. Multipart upload is handled transparently in PutObject — you set a threshold and it just works, including resumable uploads via ListIncompleteUploads. The signer package implements both SigV2 and SigV4 with streaming chunked encoding, which matters when talking to non-AWS endpoints that don't tolerate sloppy auth. Test coverage is solid — functional tests, unit tests per API file, and a dedicated 200-OK-with-error test that catches the S3 spec's worst quirk.

Star count (under 3k) is misleadingly low given how widely this is used — it's the reference implementation, not a hobby project — but it does mean the issue tracker moves slowly for non-MinIO bugs. The MinIO-specific extensions (fan-out, snowball, RDMA, annotations, QoS) are mixed in with the standard S3 surface with no clear separation, so you have to read carefully to know what will break against AWS or R2. The functional_tests.go is a single 7000-line file that requires a live server to run, making CI setup non-trivial for contributors. No context-aware streaming backpressure on GetObject — if your consumer is slow, you eat the memory.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →