[package]
edition = "2024"
rust-version = "1.91"
name = "zarrs"
version = "0.23.13"
authors = ["Lachlan Deakin <ljdgit@gmail.com>"]
build = "build.rs"
exclude = [
".github/",
"doc/TODO.md",
"tests/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A library for the Zarr storage format for multidimensional arrays and metadata"
homepage = "https://zarrs.dev"
documentation = "https://docs.rs/zarrs"
readme = "README.md"
keywords = [
"zarr",
"zarrs",
"array",
]
categories = [
"encoding",
"science",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/zarrs/zarrs"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
adler32 = ["dep:simd-adler32"]
async = [
"dep:async-generic",
"dep:async-trait",
"dep:futures",
"moka/future",
"zarrs_storage/async",
"zarrs_codec/async",
]
bitround = []
blosc = [
"dep:blosc-src",
"dep:blusc",
]
bz2 = ["dep:bzip2"]
chrono = ["dep:chrono"]
crc32c = ["dep:crc32c"]
default = [
"filesystem",
"ndarray",
"blosc",
"crc32c",
"gzip",
"sharding",
"transpose",
"zstd",
]
dlpack = ["dep:dlpark"]
filesystem = ["dep:zarrs_filesystem"]
fletcher32 = []
float8 = ["dep:float8"]
gdeflate = ["dep:gdeflate-sys"]
gzip = ["dep:flate2"]
jiff = ["dep:jiff"]
microfloat = ["dep:microfloat"]
ndarray = ["dep:ndarray"]
pcodec = ["dep:pco"]
sharding = []
transpose = ["dep:ndarray"]
zfp = ["dep:zfp-sys"]
zlib = ["dep:flate2"]
zstd = ["dep:zstd"]
[lib]
name = "zarrs"
crate-type = ["lib"]
path = "src/lib.rs"
bench = false
[[example]]
name = "array_write_read"
path = "examples/array_write_read.rs"
doc-scrape-examples = true
required-features = [
"filesystem",
"ndarray",
]
[[example]]
name = "array_write_read_ndarray"
path = "examples/array_write_read_ndarray.rs"
doc-scrape-examples = true
required-features = [
"filesystem",
"ndarray",
]
[[example]]
name = "array_write_read_string"
path = "examples/array_write_read_string.rs"
doc-scrape-examples = true
required-features = [
"filesystem",
"ndarray",
]
[[example]]
name = "async_array_write_read"
path = "examples/async_array_write_read.rs"
doc-scrape-examples = true
required-features = [
"ndarray",
"async",
]
[[example]]
name = "async_http_array_read"
path = "examples/async_http_array_read.rs"
doc-scrape-examples = true
required-features = [
"ndarray",
"async",
]
[[example]]
name = "custom_data_type_fixed_size"
path = "examples/custom_data_type_fixed_size.rs"
[[example]]
name = "custom_data_type_float8_e3m4"
path = "examples/custom_data_type_float8_e3m4.rs"
[[example]]
name = "custom_data_type_uint12"
path = "examples/custom_data_type_uint12.rs"
[[example]]
name = "custom_data_type_uint4"
path = "examples/custom_data_type_uint4.rs"
[[example]]
name = "custom_data_type_variable_size"
path = "examples/custom_data_type_variable_size.rs"
[[example]]
name = "data_type_optional"
path = "examples/data_type_optional.rs"
[[example]]
name = "data_type_optional_nested"
path = "examples/data_type_optional_nested.rs"
[[example]]
name = "rectilinear_array_write_read"
path = "examples/rectilinear_array_write_read.rs"
doc-scrape-examples = true
required-features = [
"filesystem",
"ndarray",
]
[[example]]
name = "sharded_array_write_read"
path = "examples/sharded_array_write_read.rs"
required-features = [
"filesystem",
"ndarray",
"sharding",
]
[[example]]
name = "sync_http_array_read"
path = "examples/sync_http_array_read.rs"
doc-scrape-examples = true
required-features = [
"ndarray",
"async",
]
[[example]]
name = "zarr_v2_to_v3"
path = "examples/zarr_v2_to_v3.rs"
[[bench]]
name = "array_blosc"
path = "benches/array_blosc.rs"
harness = false
[[bench]]
name = "array_subset"
path = "benches/array_subset.rs"
harness = false
[[bench]]
name = "array_uncompressed"
path = "benches/array_uncompressed.rs"
harness = false
[[bench]]
name = "codecs"
path = "benches/codecs.rs"
harness = false
[[bench]]
name = "fill_value"
path = "benches/fill_value.rs"
harness = false
[[bench]]
name = "sharded_partial_read"
path = "benches/sharded_partial_read.rs"
harness = false
required-features = [
"sharding",
"filesystem",
]
[dependencies.async-generic]
version = "1.1.2"
optional = true
[dependencies.async-lock]
version = "3.4.0"
[dependencies.async-trait]
version = "0.1.74"
optional = true
[dependencies.base64]
version = "0.22.1"
[dependencies.bytemuck]
version = "1.14.0"
features = [
"extern_crate_alloc",
"must_cast",
"min_const_generics",
]
[dependencies.bytes]
version = "1.7.0"
[dependencies.bzip2]
version = "0.6.0"
optional = true
[dependencies.chrono]
version = "0.4.39"
optional = true
[dependencies.crc32c]
version = "0.6.5"
optional = true
[dependencies.derive_more]
version = "2.0.0"
features = [
"deref",
"display",
"from",
]
[dependencies.dlpark]
version = "0.6.0"
features = ["half"]
optional = true
[dependencies.flate2]
version = "1.1.1"
optional = true
[dependencies.float8]
version = "0.5.0"
features = ["bytemuck"]
optional = true
[dependencies.futures]
version = "0.3.29"
optional = true
[dependencies.gdeflate-sys]
version = "0.4.1"
optional = true
[dependencies.half]
version = "2.4.1"
features = ["bytemuck"]
[dependencies.inventory]
version = "0.3.21"
[dependencies.itertools]
version = "0.14.0"
[dependencies.itoa]
version = "1.0.15"
[dependencies.jiff]
version = "0.2.15"
optional = true
[dependencies.log]
version = "0.4.28"
[dependencies.lru]
version = "0.16.0"
[dependencies.microfloat]
version = "0.1.3"
features = ["bytemuck"]
optional = true
[dependencies.moka]
version = "0.12.8"
features = ["sync"]
[dependencies.ndarray]
version = "0.17.1"
optional = true
[dependencies.num]
version = "0.4.1"
[dependencies.num-complex]
version = "0.4.3"
features = ["bytemuck"]
[dependencies.paste]
version = "1.0.15"
[dependencies.pco]
version = "1.0.0"
optional = true
[dependencies.rayon]
version = "1.10.0"
[dependencies.rayon_iter_concurrent_limit]
version = "0.2.0"
[dependencies.serde]
version = "1.0.203"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.71"
features = [
"float_roundtrip",
"preserve_order",
]
[dependencies.simd-adler32]
version = "0.3.7"
optional = true
[dependencies.thiserror]
version = "2.0.12"
[dependencies.thread_local]
version = "1.1.8"
[dependencies.unsafe_cell_slice]
version = "0.2.0"
[dependencies.zarrs_chunk_grid]
version = "0.5.1"
[dependencies.zarrs_chunk_key_encoding]
version = "0.2.0"
[dependencies.zarrs_codec]
version = "0.2.1"
[dependencies.zarrs_data_type]
version = "0.9.0"
[dependencies.zarrs_filesystem]
version = "0.3.9"
optional = true
[dependencies.zarrs_metadata]
version = "0.7.2"
[dependencies.zarrs_metadata_ext]
version = "0.4.4"
[dependencies.zarrs_plugin]
version = "0.4.1"
[dependencies.zarrs_storage]
version = "0.4.3"
[dependencies.zfp-sys]
version = "0.4.2"
features = ["static"]
optional = true
[dev-dependencies.chrono]
version = "0.4.39"
[dev-dependencies.criterion]
version = "0.8.1"
[dev-dependencies.object_store]
version = "0.13"
features = ["http"]
[dev-dependencies.serial_test]
version = "3.2.0"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.testing_logger]
version = "0.1.1"
[dev-dependencies.tokio]
version = "1.34.0"
features = [
"macros",
"rt-multi-thread",
]
[dev-dependencies.walkdir]
version = "2.3.2"
[dev-dependencies.zarrs_filesystem]
version = "0.3.9"
[dev-dependencies.zarrs_object_store]
version = "0.6.2"
[build-dependencies.libz-sys]
version = "1.1.20"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.blosc-src]
version = "0.3.6"
features = [
"snappy",
"lz4",
"zlib",
"zstd",
]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.zstd]
version = "0.13.3"
features = [
"zstdmt",
"experimental",
]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.blusc]
version = "0.0.6"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_v03]
version = "^0.3.1"
features = ["wasm_js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.quick_cache]
version = "0.6.16"
[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
version = "^1.1.0"
features = [
"v4",
"js",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.zstd]
version = "0.13.3"
optional = true
[lints.clippy]
missing_errors_doc = "warn"
missing_panics_doc = "warn"
module_name_repetitions = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
dead_code = "warn"
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_variables = "warn"