go-digest is a Go package that provides standardized digest and hash handling for the container ecosystem.
The package solves the problem of creating verifiable content identifiers for use in content-addressable storage systems. It allows disparate applications to agree on a unique identifier for any byte sequence without requiring mutual trust. The approach centers on computing cryptographic hashes and providing verification mechanisms through a Verifier type that works with io.Reader interfaces, enabling safe content distribution systems built on Merkle DAGs.
Developers should adopt this package when building container tools or applications that need to verify content integrity and create content-addressable identifiers. It suits any project within the container ecosystem that requires standardized digest handling. The package deals exclusively with hex-encoded digests rather than alternative encodings like base64. When accepting untrusted input, callers must validate digests using the Parse function or Validate method to ensure correctness throughout the application.
The project is considered fairly complete and battle-hardened through extensive production deployments. New feature additions are approached with skepticism, and contributors are expected to clearly describe problems and document alternatives before proposing changes. The Go API is declared stable.