Skip to content

zip: bake charts straight out of an archive - #57

Merged
beetlebugorg merged 1 commit into
mainfrom
feat/zip-streaming
Aug 11, 2026
Merged

zip: bake charts straight out of an archive#57
beetlebugorg merged 1 commit into
mainfrom
feat/zip-streaming

Conversation

@beetlebugorg

Copy link
Copy Markdown
Owner

Unzipping NOAA's All_ENCs.zip first costs 2.0 GiB of disk that is dead the moment the import ends. Instead the central directory is walked once and each cell is inflated when its turn comes, baked, and freed: 7,224 charts in about 12 minutes, never holding more than a worker's cells. What the engine can only read by path streams to disk at its own size, not twice it.

tile57_zip_list, tile57_bake_zip_charts, tile57_bake_zip_rasters, tile57_zip_extract, and tile57 bake archive.zip.

The bake now also writes the text and pictures a cell references beside its archive, from either source, when the chart has a directory of its own. Collecting them was the CLI's job, so nothing baked through the C ABI carried them and a pick report could name a caution note it could not show.

Unzipping NOAA's All_ENCs.zip first costs 2.0 GiB of disk that is dead the
moment the import ends. Instead the central directory is walked once and
each cell is inflated when its turn comes, baked, and freed: 7,224 charts
in about 12 minutes, never holding more than a worker's cells. What the
engine can only read by path streams to disk at its own size, not twice it.

tile57_zip_list, tile57_bake_zip_charts, tile57_bake_zip_rasters,
tile57_zip_extract, and `tile57 bake archive.zip`.

The bake now also writes the text and pictures a cell references beside its
archive, from either source, when the chart has a directory of its own.
Collecting them was the CLI's job, so nothing baked through the C ABI
carried them and a pick report could name a caution note it could not show.
@beetlebugorg
beetlebugorg merged commit 2346d97 into main Aug 11, 2026
5 checks passed
@beetlebugorg
beetlebugorg deleted the feat/zip-streaming branch August 11, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant