Skip to content

Releases: ronfinn/zarr-tree

zarr-tree v0.4.0

Choose a tag to compare

@ronfinn ronfinn released this 30 Aug 21:21

Highlights

v0.4.0 adds metadata-only structural validation to zarr-tree while preserving
its read-only inspection model.

Structural validation

  • New --validate mode.
  • PASS, WARN and ERROR findings, 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

Choose a tag to compare

@ronfinn ronfinn released this 29 Aug 12:05

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

Choose a tag to compare

@ronfinn ronfinn released this 25 Aug 19:11

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 shards to 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

Choose a tag to compare

@ronfinn ronfinn released this 24 Aug 14:52

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 --check
  • cargo check
  • cargo clippy --all-targets -- -D warnings
  • cargo build --release

All checks passed.