Open-Source Wikis

/

MinIO

/

Packages

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.

Packages – MinIO wiki | Factory