[package]
name = "ragdrift-core"
description = "Pure-Rust core for ragdrift: 5-dimensional drift detection for RAG systems."
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
readme = "README.md"
keywords.workspace = true
categories.workspace = true

[dependencies]
ndarray = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
rand = { workspace = true }
rand_distr = { workspace = true }
# Optional: feature-gated parallelism in MMD and sliced Wasserstein hot loops.
rayon = { workspace = true, optional = true }

[dev-dependencies]
# Test-only RNG-backed array generation (Standard normal samples for MMD tests).
ndarray-rand = "0.15"
# Property tests asserting score=0 for identical inputs across all detectors.
proptest = "1.5"
# Float comparison helpers in unit tests.
approx = "0.5"
# Benchmarking framework. Pinned to the latest 0.5 line.
criterion = { version = "0.5", features = ["html_reports"] }

[features]
default = ["parallel"]
parallel = ["dep:rayon"]

[[bench]]
name = "drift_bench"
path = "../../benches/drift_bench.rs"
harness = false
required-features = ["parallel"]

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