# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "tetration"
version = "0.1.5"
authors = ["AHurowitz <thicclatka@users.noreply.github.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "tet"
description = "Tetration tensor file format: Rust library (tetration) and tet CLI"
homepage = "https://github.com/thicclatka/tetration"
documentation = "https://docs.rs/tetration"
readme = "README.md"
keywords = [
    "tensor",
    "data",
    "format",
    "mmap",
]
categories = [
    "encoding",
    "filesystem",
    "command-line-utilities",
]
license = "MIT or Apache-2.0"
repository = "https://github.com/thicclatka/tetration"

[package.metadata.docs.rs]
no-default-features = true

[features]
default = [
    "tetration-netcdf",
    "tetration-hdf5",
]
tetration-gpu = ["dep:cudarc"]
tetration-hdf5 = ["dep:hdf5-metno"]
tetration-metal = ["dep:metal"]
tetration-netcdf = ["dep:netcdf"]
tetration-rocm = ["dep:cudarc"]

[lib]
name = "tetration"
path = "src/lib.rs"

[[bin]]
name = "tet"
path = "src/bin/tet.rs"

[[example]]
name = "create_and_query"
path = "examples/create_and_query.rs"

[[example]]
name = "gen_small_tet_fixtures"
path = "examples/gen_small_tet_fixtures.rs"

[[example]]
name = "inspect_catalog"
path = "examples/inspect_catalog.rs"

[[example]]
name = "session_write"
path = "examples/session_write.rs"

[[example]]
name = "streaming_write"
path = "examples/streaming_write.rs"

[dependencies.bytemuck]
version = "1.25.0"

[dependencies.clap]
version = "4.5.51"
features = ["derive"]

[dependencies.cudarc]
version = "0.19.7"
features = [
    "std",
    "driver",
    "nvrtc",
    "fallback-dynamic-loading",
    "cuda-12080",
]
optional = true
default-features = false

[dependencies.half]
version = "2.6.0"
features = [
    "bytemuck",
    "serde",
]

[dependencies.hdf5-metno]
version = "0.12.4"
optional = true

[dependencies.indicatif]
version = "0.18.3"

[dependencies.memmap2]
version = "0.9.10"

[dependencies.netcdf]
version = "0.12.0"
optional = true

[dependencies.rayon]
version = "1.12.0"

[dependencies.rkyv]
version = "0.8.16"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.150"

[dependencies.thiserror]
version = "2.0.18"

[dependencies.toml]
version = "1.1.2"

[dependencies.zstd]
version = "0.13.3"

[dev-dependencies.anyhow]
version = "1.0.102"

[dev-dependencies.log]
version = "0.4.29"

[dev-dependencies.proptest]
version = "1.9.0"

[dev-dependencies.tempfile]
version = "3.23.0"

[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.29.0"
optional = true

[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true
