Packfile library — shared infrastructure for ledger + events frozen artifacts
TL;DR
Packfile is a shared on-disk format and Go library — owned inside this repository, not external — that stores immutable, query-ready artifacts. It is the single substrate underneath two parallel application paths:
This epic tracks the packfile-side work end-to-end: design, CI infrastructure for compression, low-level encoding primitives, and generic writer + reader. Items 6 and 7 (originally planned zstd-enabled wrappers) were superseded by the caller-supplied-codec design in #702 + #712 — each consumer plumbs the zstd codec at its own call site.
Where this epic sits
Contents (linked work)
| # |
Item |
State |
PR / issue |
| 1 |
Packfile design doc |
merged |
#633 |
| 2 |
Zstd CGo wrapper for packfile compression (CI integration) |
merged |
#650 |
| 3 |
Intpack FOR encoding + packfile offset index codec |
merged |
#649 |
| 4 |
Generic packfile writer |
merged |
#702 |
| 5 |
Generic packfile reader |
merged |
#712 |
| 6 |
Zstd-enabled packfile writer primitive — superseded; #702 ships caller-supplied codec, consumers plumb zstd at the call site |
superseded |
#720 (closed) |
| 7 |
Packfile decoder primitive — superseded; #712 ships caller-supplied codec, consumers plumb zstd at the call site |
superseded |
never filed |
Consumers (cross-epic)
References
Packfile library — shared infrastructure for ledger + events frozen artifacts
TL;DR
Packfile is a shared on-disk format and Go library — owned inside this repository, not external — that stores immutable, query-ready artifacts. It is the single substrate underneath two parallel application paths:
This epic tracks the packfile-side work end-to-end: design, CI infrastructure for compression, low-level encoding primitives, and generic writer + reader. Items 6 and 7 (originally planned zstd-enabled wrappers) were superseded by the caller-supplied-codec design in #702 + #712 — each consumer plumbs the zstd codec at its own call site.
Where this epic sits
*zstd.Compressor/*zstd.Decompressorsatisfy the packfile codec interfaces directly via compile-time assertions in the packfile tests.Contents (linked work)
Zstd-enabled packfile writer primitive— superseded; #702 ships caller-supplied codec, consumers plumb zstd at the call sitePackfile decoder primitive— superseded; #712 ships caller-supplied codec, consumers plumb zstd at the call siteConsumers (cross-epic)
*zstd.Compressor/*zstd.Decompressorat the call site.References
design-docs/packfile-library.mdon thefeature/full-historybranch (landed via PR Add packfile library design doc #633; drift fix in flight at Update packfile design doc to match merged writer and reader implementations #737).feature/full-history.