zarrs
is a Rust library for the Zarr storage format for multidimensional arrays and metadata.
Tip
If you are a Python user, check out zarrs-python
.
It includes a high-performance codec pipeline for the reference zarr-python
implementation.
zarrs
supports Zarr V3 and a V3 compatible subset of Zarr V2.
It is fully up-to-date and conformant with the Zarr 3.1 specification with support for:
- all core extensions (data types, codecs, chunk grids, chunk key encodings, storage transformers),
- all accepted Zarr Enhancement Proposals (ZEPs) and several draft ZEPs:
- ZEP 0003: Variable chunking
- ZEP 0007: Strings
- ZEP 0009: Zarr Extension Naming
- various registered extensions from
zarr-extensions
, - experimental extensions intended for future registration, and
- user-defined custom extensions and stores.
A changelog can be found here. Correctness issues with past versions are detailed here.
Developed at the Department of Materials Physics, Australian National University, Canberra, Australia.
- Read the documentation (docs.rs), which details:
- Zarr version support,
- array extension support (codecs, data types, chunk grids, etc.),
- storage support,
- examples of how to use
zarrs
, and - an overview of the
zarrs
ecosystem including supporting crates and Python and C/C++ bindings.
- Read The
zarrs
Book. - Review benchmarks of
zarrs
andzarrs-python
compared tozarr-python
andtensorstore
. - Try the command line tools in
zarrs_tools
:zarrs_reencode
: a reencoder that can change codecs, chunk shape, convert Zarr V2 to V3, etc.zarrs_ome
: create an OME-Zarr hierarchy from a Zarr array.zarrs_filter
: transform arrays: crop, rescale, downsample, gradient magnitude, gaussian, noise filtering, etc.
zarrs
is licensed under either of
- the Apache License, Version 2.0 LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 or
- the MIT license LICENSE-MIT or http://opensource.org/licenses/MIT, at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.