Releases: ronfinn/zarr-tree
Release list
zarr-tree v0.4.0
Highlights
v0.4.0 adds metadata-only structural validation to zarr-tree while preserving
its read-only inspection model.
Structural validation
- New
--validatemode. PASS,WARNandERRORfindings, with a summary line.- Text and JSON validation output (
--validate --json). - Exit status 2 when structural errors are found.
- Checks Zarr dimensions, OME-Zarr dataset paths and pyramids, HCS wells,
SpatialData table regions, AnnData dimensions and SpatialData Parquet
availability. - Validation remains metadata-only: no image chunks, expression values or
Parquet records are read.
Documentation and maintenance
- Reworked README as a project landing page.
- Added dedicated CLI, architecture, remote-store, Zarr, OME-Zarr and
SpatialData documentation. - Added CHANGELOG, CONTRIBUTING, SECURITY and GitHub contribution templates.
Compatibility
- Minimum supported Rust version is now 1.88.
Verification
- 112 tests (94 unit, 18 integration).
- CI checks formatting, Clippy, tests and the Rust 1.88 MSRV.
- Validation cross-checked against real OME-Zarr and SpatialData stores.
Known limitations
zarr-tree remains a metadata inspector, not an array reader or a full
format-conformance validator. It does not read image chunks, AnnData expression
values or Parquet records.
Full changelog: https://github.com/ronfinn/zarr-tree/blob/v0.4.0/CHANGELOG.md
zarr-tree v0.3.0
zarr-tree v0.3.0
This release expands zarr-tree from a local Zarr metadata inspector into a
remote and SpatialData-aware inspection tool.
Remote stores
- inspect Zarr stores directly on S3
- inspect HTTP/HTTPS stores using WebDAV-compatible listing
- traverse static HTTP stores using consolidated metadata
- support Zarr V2
.zmetadata - support Zarr V3 inline
consolidated_metadata
SpatialData
- inspect Parquet footer metadata for Points and Shapes
- report rows, columns, file counts and schemas without reading records
- summarize AnnData-backed Tables
- report observations, variables, X representation, obs/var columns and
SpatialData region linkage - distinguish unavailable Points payload metadata with
parquet files: ?
Efficiency
- arrays remain leaves; chunk keys are not enumerated
- remote Parquet metadata uses bounded footer reads
- expression matrices are not read
- consolidated metadata can traverse an entire HTTP hierarchy with a single
metadata document
Validation
Validated against real public data including:
- IDR OME-Zarr 0.3, 0.4 and 0.5
- OME-Zarr HCS
- Janelia COSEM
- Pangeo consolidated Zarr
- SpatialData Xenium
- SpatialData Visium
- SpatialData MERFISH
- SpatialData MIBI-TOF
The final public-data validation found no correctness bugs.
Scope
zarr-tree remains a read-only metadata inspection tool.
No chunk/pixel reads, Parquet row reads or expression-matrix reads are
performed.
zarr-tree v0.2.0
zarr-tree v0.2.0
This release expands real-world OME-Zarr and Zarr V3 support.
Highlights
- Correctly distinguishes inner chunks from shards for Zarr V3 arrays using
sharding_indexed - Adds a
shards:metadata row for sharded arrays - Adds
shardsto JSON output only when applicable - Recognises OME-Zarr HCS plates
- Recognises OME-Zarr HCS wells
- Reports declared HCS row, column and well counts
- Preserves existing OME-Zarr image and SpatialData behaviour
Validation
Validated against real public metadata from:
- IDR OME-Zarr 0.3
- IDR OME-Zarr 0.4
- IDR OME-Zarr 0.5
- real HCS plate data
- scverse SpatialData MIBI-TOF
- scverse SpatialData Xenium
No incorrect metadata output was found in the final validation pass.
Scope
zarr-tree remains a local, metadata-only inspection CLI.
No binary assets and no crates.io publication yet.
zarr-tree v0.1.0
zarr-tree v0.1.0
First public release of zarr-tree, a small Rust CLI for exploring the
structure and metadata of local Zarr stores.
Highlights
-
Inspect local Zarr V2 and V3 stores as a readable tree
-
Recognise Zarr groups, arrays and unknown nodes
-
Display array shape, chunk shape and dtype
-
Recognise OME-Zarr image groups
-
Display OME-NGFF axes and declared multiscale pyramid metadata
-
Recognise SpatialData:
- store roots
- images
- labels
- points
- shapes
- tables
-
Limit traversal with
--depth -
Emit machine-readable output with
--json -
Behave cleanly in Unix pipelines such as:
zarr-tree store.zarr | head
Example
zarr-tree experiment.zarr
may produce:
experiment.zarr [group, SpatialData 0.2]
├── images [group]
│ └── morphology [group, OME-Zarr 0.5-dev-spatialdata, SpatialData image]
├── labels [group]
│ └── nuclei [group, OME-Zarr 0.5-dev-spatialdata, SpatialData labels]
├── points [group]
│ └── transcripts [group, SpatialData points]
├── shapes [group]
│ └── cell_boundaries [group, SpatialData shapes]
└── tables [group]
└── table [group, SpatialData table]
Usage
Build from source:
git clone https://github.com/ronfinn/zarr-tree.git
cd zarr-tree
cargo build --release
Then run:
target/release/zarr-tree path/to/store.zarr
Useful options:
zarr-tree --depth 2 store.zarr
zarr-tree --json store.zarr
zarr-tree --json --depth 1 store.zarr
Scope
This release is intentionally metadata-only and local-filesystem-only.
It does not:
- read array chunks or pixel values
- decode Parquet or GeoParquet payloads
- interpret AnnData expression matrices
- access S3, HTTP or other remote object stores
- perform full OME-NGFF or SpatialData validation
OME-Zarr and SpatialData support is recognition and inspection rather than
full specification validation.
Quality
The v0.1.0 release was tagged from a clean build with:
- 37 unit tests
- 11 CLI integration tests
cargo fmt --checkcargo checkcargo clippy --all-targets -- -D warningscargo build --release
All checks passed.