v0.2.0
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 (zarrscrate) that streams a store as(samples, channels)int16chunks, one region resident at a time, GIL released per chunk. Reads gzip-, zstd-, and blosc-compressed stores, covering bothzarr-python's (zstd) and SpikeInterface's (blosc) default compressors. Bothpip install segoviaand the crate carry it.- New
ChunkSourcetrait unifiesSpikeGlxReaderandZarrReaderas one chunk-producer contract that the upcoming compute chain will target generically (ADR 0011).
Validation
- Real-data cross-validation:
ZarrReaderyields byte-identical chunks toSpikeGlxReaderfor the realNoise4Sam_g0Neuropixels recording (NEOephy_testing_data) re-encoded through gzip, zstd, and blosc. - 12 Rust + 14 Python tests green;
clippy -D warningsclean. abi3 wheels build on Windows, macOS, and Linux — including thezstd-sys/blosc-srcC-codec builds.
Still open
- Validated against
zarr-pythonv3 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