[package]
name = "tensogram"
version = "0.16.1"
edition = "2024"
rust-version = "1.87"
license = "Apache-2.0"
description = "Fast binary N-tensor message format for scientific data — encode, decode, file I/O, streaming"
repository = "https://github.com/ecmwf/tensogram"
homepage = "https://sites.ecmwf.int/docs/tensogram/main"
documentation = "https://docs.rs/tensogram"
readme = "README.md"
keywords = ["tensogram", "tensor", "scientific-data", "encoding", "serialization"]
categories = ["science", "encoding"]
authors = ["ECMWF <software@ecmwf.int>"]
[package.metadata.docs.rs]
all-features = true
[features]
default = ["szip", "zstd", "lz4", "blosc2", "zfp", "sz3", "threads"]
mmap = ["dep:memmap2"]
async = ["dep:tokio"]
remote = ["dep:object_store", "dep:url", "dep:bytes", "dep:tokio", "tokio/rt-multi-thread"]
szip = ["tensogram-encodings/szip"]
szip-pure = ["tensogram-encodings/szip-pure"]
zstd = ["tensogram-encodings/zstd"]
zstd-pure = ["tensogram-encodings/zstd-pure"]
lz4 = ["tensogram-encodings/lz4"]
blosc2 = ["tensogram-encodings/blosc2"]
zfp = ["tensogram-encodings/zfp"]
sz3 = ["tensogram-encodings/sz3"]
threads = ["dep:rayon", "tensogram-encodings/threads"]
[dependencies]
tensogram-encodings = { path = "../tensogram-encodings", version = "=0.16.1", default-features = false }
thiserror.workspace = true
ciborium = { workspace = true }
serde.workspace = true
xxhash-rust.workspace = true
uuid.workspace = true
tracing.workspace = true
memmap2 = { version = "0.9", optional = true }
tokio = { version = "1", features = ["fs", "rt"], optional = true }
object_store = { version = "0.13", default-features = false, features = ["aws", "gcp", "azure", "http"], optional = true }
url = { version = "2", optional = true }
bytes = { version = "1", optional = true }
rayon = { workspace = true, optional = true }
[dev-dependencies]
proptest.workspace = true
serde_json.workspace = true
tempfile = "3"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
sha2 = "0.10"
hyper = { version = "1", features = ["server", "http1"] }
hyper-util = { version = "0.1", features = ["tokio"] }
http-body-util = "0.1"