#multidimensional-array #zarr #metadata #version #format

zarrs

A library for the Zarr V3 storage format for multidimensional arrays and metadata

29 releases (11 breaking)

new 0.13.0 Apr 19, 2024
0.12.5 Mar 17, 2024
0.12.2 Feb 26, 2024
0.8.0 Dec 26, 2023
0.6.0 Nov 16, 2023

#313 in Encoding

Download history 10/week @ 2024-01-01 15/week @ 2024-01-15 14/week @ 2024-01-22 42/week @ 2024-01-29 31/week @ 2024-02-05 4/week @ 2024-02-12 258/week @ 2024-02-19 366/week @ 2024-02-26 395/week @ 2024-03-04 347/week @ 2024-03-11 48/week @ 2024-03-18 39/week @ 2024-04-01 192/week @ 2024-04-15

233 downloads per month
Used in 2 crates

MIT/Apache

1MB
25K SLoC

zarrs

Latest Version zarrs documentation msrv build codecov

A rust library for the Zarr V3 storage format for multidimensional arrays and metadata.

Developed at the Department of Materials Physics, Australian National University, Canberra, Australia.

zarrs is experimental and in limited production use. Use at your own risk! Correctness issues with past versions are detailed here.

A changelog can be found here.

Getting Started

Example

let store_path: PathBuf = "/path/to/store".into();
let store: zarrs::storage::ReadableWritableListableStorage =
    Arc::new(zarrs::storage::store::FilesystemStore::new(&store_path)?);

let array_path: &str = "/group/array"; // /path/to/store/group/array
let array = zarrs::array::Array::new(store, array_path)?;

let chunk: ndarray::ArrayD<f32> = array.retrieve_chunk_ndarray(&[1, 0])?;
println!("Chunk [1,0] is:\n{chunk}");

zarrs Ecosystem

  • zarrs_tools: Various tools for creating and manipulating Zarr v3 data. Includes zarrs benchmarks.
  • zarrs_ffi: A subset of zarrs exposed as a C API.

Licence

zarrs is licensed under either of

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.

Dependencies

~8–26MB
~374K SLoC