Components
go-volumes is a set of dependency-free Go modules (standard library only,
CGO_ENABLED=0) layered around one small block-device contract:
| Module | Import path | Layer | What it does |
|---|---|---|---|
interface |
github.com/go-volumes/interface |
contract | The 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. |
pool |
github.com/go-volumes/pool |
pool | Copy-on-write pooled volume manager: volumes, immutable snapshots, writable clones, sparse raw export/import. Pluggable Backing. |
s3 |
github.com/go-volumes/s3 |
backing | S3-backed block store satisfying pool's Backing — run a pool on object storage. From-scratch AWS Signature V4, no SDK. |
oci |
github.com/go-volumes/oci |
backing | Freeze 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).