Repository navigation
v0.6.0
Dual persistence: Dataset + Volume
Summary
Introduces Volume as a second first-class persistence paradigm alongside Dataset. Volume provides sparse, resumable, range-addressable byte-space persistence with incremental commits and overflow-safe arithmetic throughout.
Highlights
NewVolumeconstructor withVolumeID,TotalLength, and optionalWithVolumeChecksumStageWriteAt/Commit/ReadAtfor incremental block-level persistence- Cumulative snapshot manifests with strict overlap validation
Latest/Snapshots/Snapshotfor Volume history accessErrRangeMissingandErrOverlappingBlockserror sentinels- Overflow-safe bounds checks across all Volume code paths
Breaking Changes
Snapshot→DatasetSnapshot,SnapshotID→DatasetSnapshotIDReader→DatasetReader,NewReader→NewDatasetReaderSegmentRef→ManifestRef(Dataset),BlockRef(Volume)ListSegments→ListManifests,SegmentListOptions→ManifestListOptionsErrOverlappingSegments→ErrOverlappingBlocksErrOptionNotValidForReader→ErrOptionNotValidForDatasetReader
Upgrade Notes
- All Dataset type renames are mechanical find-and-replace in consuming code
- Volume is entirely additive — no changes needed if you only use Dataset
- Volume uses a fixed internal layout; the Layout abstraction remains Dataset-specific
References
docs/contracts/CONTRACT_VOLUME.mddocs/contracts/CONTRACT_WRITE_API.md(concurrency matrices)docs/contracts/CONTRACT_ERRORS.md(new sentinels)examples/volume_sparse/
Full Changelog: v0.5.0...v0.6.0
What's Changed
- docs(roadmap): 📝 add v0.6 volume contract + api plan by @justapithecus in #92
- refactor(api): ♻️ rename Dataset/Reader types and add Volume type definitions by @justapithecus in #94
- feat(volume): ✨ implement core Volume persistence by @justapithecus in #95
- test(volume): ✅ add comprehensive Volume test suite by @justapithecus in #96
- feat(examples): ✨ add sparse Volume ranges example by @justapithecus in #97
- docs(volume): 📝 finalize Volume documentation and README refresh by @justapithecus in #98
- docs: 📝 pre-v0.6.0 documentation audit fixes by @justapithecus in #99
- fix(volume): 🐛 use overflow-safe arithmetic in bounds checks by @justapithecus in #100
- docs(roadmap): 📝 mark Parquet and Volume Phase 6 deliverables complete by @justapithecus in #101
Full Changelog: v0.5.0...v0.6.0