[package]
name = "eccodes"
description = "Unofficial high-level Rust bindings of the latest ecCodes release"
repository = "https://github.com/ScaleWeather/eccodes"
version = "0.14.0-alpha.1"
readme = "README.md"
authors = ["Jakub Lewandowski <scaleweather@gmail.com>"]
keywords = ["eccodes", "grib", "bufr", "meteorology", "weather"]
categories = [
    "api-bindings",
    "external-ffi-bindings",
    "filesystem",
    "encoding",
    "science",
]
license = "Apache-2.0"
edition = "2024"
exclude = [".github/*", ".vscode/*", ".idea/*", "data/*"]
rust-version = "1.85.1"

[dependencies]
eccodes-sys = { version = "0.7.0", default-features = false }
libc = { version = "0.2", default-features = false }
thiserror = { version = "2.0", default-features = false }
errno = { version = "0.3", default-features = false }
num-derive = { version = "0.4", default-features = false }
num-traits = { version = "0.2", default-features = false }
fallible-iterator = { version = "0.3", default-features = false }
ndarray = { version = "0.17", default-features = false, optional = true, features = [
    "std",
] }
tracing = { version = "0.1", default-features = false, features = [
    "std",
    "attributes",
    "log",
] }

[dev-dependencies]
reqwest = { version = "0.13", features = ["rustls"] }
criterion = "0.8"
rand = "0.9"
anyhow = { version = "1.0", features = ["backtrace"] }
float-cmp = "0.10"

[features]
default = ["ndarray"]
docs = ["eccodes-sys/docs"]
ndarray = ["dep:ndarray"]

[package.metadata.docs.rs]
features = ["docs", "ndarray"]

[[bench]]
name = "main"
harness = false
