[package]
name = "kshana"
version = "0.10.0"
edition = "2021"
description = "Open hybrid quantum/classical PNT performance simulator"
license = "Apache-2.0"
authors = ["Chakshu Baweja <contact@ashforde.org>"]
repository = "https://github.com/AshfordeOU/kshana"
homepage = "https://github.com/AshfordeOU/kshana"
documentation = "https://docs.rs/kshana"
readme = "README.md"
keywords = ["pnt", "navigation", "quantum", "gnss", "simulation"]
categories = ["science", "simulation"]
rust-version = "1.75"
# Keep the published crate lean: the browser playground, CI config, and the
# real-data validation test with its fixtures aren't part of the library
# distribution. (The test reads the fixtures via include_str!, so the two must be
# excluded together or a packaging verification build would fail to find them.)
exclude = ["/web", "/.github", "/tests/fixtures", "/tests/igs_real_data.rs"]

[lib]
name = "kshana"
path = "src/lib.rs"
# rlib for the CLI and tests; cdylib for the Python / WebAssembly extension modules.
crate-type = ["rlib", "cdylib"]

[[bin]]
name = "kshana"
path = "src/main.rs"

[dependencies]
rand = "0.8"
rand_chacha = "0.3"
rand_distr = "0.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
sha2 = "0.10"
hex = "0.4"

# Optional bindings. Off by default: the core library, CLI, tests, and the
# dependency-audit gate never compile or scan these unless the feature is enabled.
pyo3 = { version = "0.24", features = ["extension-module", "abi3-py39"], optional = true }
wasm-bindgen = { version = "0.2", optional = true }

# On wasm32 the (transitive) getrandom must use the browser/JS entropy source.
# Target-gated, so native builds and the dependency-audit gate are unaffected.
[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { version = "0.2", features = ["js"] }

[features]
# Python extension module, built with maturin (`maturin build --features python`).
python = ["dep:pyo3"]
# WebAssembly module, built with wasm-pack (`wasm-pack build -- --features wasm`).
wasm = ["dep:wasm-bindgen"]
