Skip to content

Components

Components

go-volumes is a set of dependency-free Go modules (standard library only, CGO_ENABLED=0) layered around one small block-device contract:

ModuleImport pathLayerWhat it does
interfacegithub.com/go-volumes/interfacecontractThe block-device Device contract (ReadAt/WriteAt/Size/Sync/Close) every layer reads and writes through — decoupling where the bytes live from the format on top.
poolgithub.com/go-volumes/poolpoolCopy-on-write pooled volume manager: volumes, immutable snapshots, writable clones, sparse raw export/import. Pluggable Backing.
s3github.com/go-volumes/s3backingS3-backed block store satisfying pool’s Backing — run a pool on object storage. From-scratch AWS Signature V4, no SDK.
ocigithub.com/go-volumes/ocibackingFreeze a volume into an immutable, content-addressed OCI artifact (chunk-deduped) and re-open it as a read-only backing.

Planned follow-ups: multi-device pooling / RAID, online volume grow/shrink, and free-bitmap allocation (the current pool allocator is a linear scan).