Skip to content

v0.2.0

Choose a tag to compare

@fcarvajalbrown fcarvajalbrown released this 09 Jun 17:18
· 19 commits to main since this release

Segovia v0.2.0 — a second bounded-memory reader: Zarr joins SpikeGLX behind one streaming contract.

Highlights

  • segovia.ZarrReader — a chunked, memory-bounded Zarr v2/v3 reader (zarrs crate) that streams a store as (samples, channels) int16 chunks, one region resident at a time, GIL released per chunk. Reads gzip-, zstd-, and blosc-compressed stores, covering both zarr-python's (zstd) and SpikeInterface's (blosc) default compressors. Both pip install segovia and the crate carry it.
  • New ChunkSource trait unifies SpikeGlxReader and ZarrReader as one chunk-producer contract that the upcoming compute chain will target generically (ADR 0011).

Validation

  • Real-data cross-validation: ZarrReader yields byte-identical chunks to SpikeGlxReader for the real Noise4Sam_g0 Neuropixels recording (NEO ephy_testing_data) re-encoded through gzip, zstd, and blosc.
  • 12 Rust + 14 Python tests green; clippy -D warnings clean. abi3 wheels build on Windows, macOS, and Linux — including the zstd-sys/blosc-src C-codec builds.

Still open

  • Validated against zarr-python v3 stores, not yet the exact SpikeInterface store layout (array-node naming, segment grouping).
  • No realistic full-1-hour bounded-memory run yet, and the make-or-break SC1 benchmark (bandpass → CMR → whiten vs spikeinterface) is not built — the compute engine does not exist yet.

Full Changelog: v0.1.0...v0.2.0