minio/minio
Packages
internal/ is MinIO's collection of reusable, dependency-light Go packages. They are imported by cmd/ (the runtime) and by each other; nothing outside this module can import them.
There are 34 directories under internal/. They fall into a handful of natural buckets:
| Bucket | Packages |
|---|---|
| Auth and identity | auth/, jwt/, config/identity/{ldap,openid,plugin,tls}/, config/policy/{opa,plugin}/ |
| Crypto and KMS | crypto/, kms/, hash/, etag/ |
| HTTP and networking | http/, mountinfo/, net/, deadlineconn/, handlers/, mcontext/, rest/ |
| Storage primitives | disk/, ioutil/, lock/, lsync/, dsync/, ringbuffer/, bpool/, bucket/{bandwidth,encryption,lifecycle,object,replication,versioning}/ |
| Concurrency | pubsub/, once/, cachevalue/ |
| Data and serialisation | arn/, s3select/, amztime/, color/, init/ |
| Configuration | config/, config/api/, config/batch/, config/browser/, config/callhome/, config/compress/, config/dns/, config/drive/, config/etcd/, config/heal/, config/ilm/, config/lambda/, config/notify/, config/scanner/, config/storageclass/, config/subnet/ |
| Eventing | event/, event/target/, store/ |
| Logging | logger/, logger/audit/, logger/target/ |
| Cluster RPC | grid/ |
Below is a short tour of the packages a contributor will reach for most often. Each one is intentionally small and well-bounded.
Highlights
| Package | What it provides | Page |
|---|---|---|
internal/auth |
Access/secret key types, generation, validation. | auth-and-config |
internal/config |
The cluster-wide config registry consumed by every sub-system. | auth-and-config |
internal/crypto |
SSE-C / SSE-S3 / SSE-KMS scheme implementations. | crypto-and-kms |
internal/kms |
KMS interface + KES adapter. | crypto-and-kms |
internal/hash |
Pluggable content hashes (SHA-256, MD5, HighwayHash). | hash-and-etag |
internal/etag |
ETag arithmetic for multipart and SSE. | hash-and-etag |
internal/event |
Bucket event model + target multiplexer. | event-and-store |
internal/store |
On-disk FIFO queue used by every event/audit target. | event-and-store |
internal/grid |
Binary multiplex RPC protocol. | grid-and-rest |
internal/rest |
Lightweight HTTP-based RPC base used by storage REST and peer REST. | grid-and-rest |
internal/dsync |
Distributed RW mutex (DSync). | locks-and-sync |
internal/lsync |
Lightweight in-process sync helpers. | locks-and-sync |
internal/lock |
OS-level fcntl/flock primitives. | locks-and-sync |
internal/logger |
Operational + audit logging facade. | logger |
internal/http |
HTTP server + transport defaults. | http-and-net |
internal/ioutil |
I/O helpers (limited reader, copy with deadline, …). | http-and-net |
internal/disk |
Drive-level helpers (statfs, fdatasync, atime). | storage-primitives |
internal/bucket/lifecycle, bucket/replication, bucket/encryption, bucket/versioning, bucket/object, bucket/bandwidth |
Per-bucket models for ILM, replication, encryption, versioning, object lock, and bandwidth tracking. | bucket-models |
internal/s3select |
S3 Select SQL evaluator over CSV / JSON / Parquet. | s3select |
internal/pubsub |
In-process pub/sub used by trace and bandwidth telemetry. | pubsub-and-utilities |
internal/cachevalue |
TTL-backed cached value helper. | pubsub-and-utilities |
internal/once |
"Init once" helper variants. | pubsub-and-utilities |
internal/ringbuffer |
Lock-free ring buffer used in metrics and tracing. | pubsub-and-utilities |
internal/init |
Process-wide initialisation that must run before main(). |
pubsub-and-utilities |
internal/handlers |
Shared HTTP middleware used by the API router. | http-and-net |
internal/mcontext |
A context wrapper that carries metadata across HTTP boundaries. | http-and-net |
internal/amztime |
AWS-compatible time formats. | pubsub-and-utilities |
internal/color |
Terminal colour helpers used in the startup banner. | pubsub-and-utilities |
internal/arn |
AWS ARN parsing. | pubsub-and-utilities |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.