[package]
name = "muscat"
description = "Multithreaded Side Channel Attacks Tool"
version = "0.3.0"
edition = "2024"
license = "MIT OR Apache-2.0"
repository = "https://github.com/Ledger-Donjon/muscat"
readme = "README.md"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[profile.release-with-debug]
inherits = "release"
strip = "none"
debug = true

[features]
progress_bar = ["dep:indicatif"]
quicklog = []

[dependencies]
serde_json = "1.0.132"
hex = "0.4.3"
npyz = "0.8.3"
ndarray = { version = "0.16.1", features = ["serde"] }
rayon = "1.10.0"
indicatif = { version = "0.17.8", optional = true }
ndarray-npy = "0.9.1"
itertools = "0.13.0"
thiserror = "1.0.58"
dtw = "0.1.0"
num-traits = "0.2.19"
serde = { version = "1.0.214", features = ["derive"] }

[dev-dependencies]
criterion = "0.5.1"
ndarray-rand = "0.15.0"
gnuplot = "0.0.45"
anyhow = "1.0.98"

[[example]]
name = "cpa"

[[example]]
name = "cpa_normal"

[[example]]
name = "dpa"

[[example]]
name = "rank"
required-features = ["progress_bar"]

[[example]]
name = "snr"

[[example]]
name = "nicv"

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

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

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

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

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