Skip to content

Add IVCSC/IVCSR file storage format and default Blosc2+LZ4 compression - #2

Merged
aarmey merged 3 commits into
mainfrom
aarmey/ivcsc-blosc-compression
Aug 23, 2026
Merged

Add IVCSC/IVCSR file storage format and default Blosc2+LZ4 compression#2
aarmey merged 3 commits into
mainfrom
aarmey/ivcsc-blosc-compression

Conversation

@aarmey

@aarmey aarmey commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

  • Add an IVCSC/IVCSR on-disk storage format: VCSCAnnData.write_h5ad/write_zarr accept format="ivcsc", which delta+varint byte-packs the minor-axis indices array for a smaller file. This is storage-only — reading a file (via read_h5ad/read_zarr, or anndata.io.read_elem anywhere in the registry) always decompresses straight back into an ordinary VCSCArray/VCSRArray; there is no separate in-memory IVCSC type.
  • Default write_h5ad/write_zarr to Blosc2+LZ4 compression for every array written (via hdf5plugin for HDF5, zarr's native Blosc codec for zarr), overridable via dataset_kwargs.

Test plan

  • uv run pytest (336 passed, 10 skipped)
  • uv run ruff check .
  • uv run ty check
  • uv run sphinx-build -b html docs docs/_build/html

https://claude.ai/code/session_016hqRfanyt3BKX8GsNPSdK2

Aaron Meyer and others added 3 commits August 10, 2026 07:25
VCSCAnnData.write_h5ad/write_zarr gain format="ivcsc", which byte-packs
the minor-axis indices (delta+varint) for a smaller file; reading always
decompresses straight back into a plain VCSCArray/VCSRArray, so IVCSC is
purely an on-disk storage format with no separate in-memory type. Both
write methods also now default to Blosc2+LZ4 compression for every array
(override via dataset_kwargs).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016hqRfanyt3BKX8GsNPSdK2
@aarmey
aarmey merged commit f44421a into main Aug 23, 2026
@aarmey
aarmey deleted the aarmey/ivcsc-blosc-compression branch August 23, 2026 03:55
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