[package]
name = "atria-rs"
version = "1.3.0"
authors = ["Joseph R. Quinn <423821+quinnjr@users.noreply.github.com>"]
edition = "2024"
description = "Library for running the Ablatio Triadum (ATria) centrality algorithm (Cickovski et al, 2015, 2017)."
license = "MIT"
keywords = ["centrality", "graph", "algorithm", "bioinformatics", "pluma"]
repository = "https://github.com/quinnjr/ATria-rs"
build = "build.rs"

[features]
default = []
gpu = ["wgpu", "pollster", "bytemuck"]
cuda = ["cudarc"]

[lib]
name = "ATriaPlugin"
crate-type = ["lib", "cdylib"]

[dependencies]
csv = "1.1.3"
libm = "0.2.1"
log = "0.4.11"
rayon = "1.4.1"
serde = "1.0.116"
cpp = "0.5.5"

# Optional GPU dependencies (wgpu - cross-platform)
wgpu = { version = "0.20", optional = true }
pollster = { version = "0.3", optional = true }
bytemuck = { version = "1.16", features = ["derive"], optional = true }

# Optional CUDA dependencies (NVIDIA only)
cudarc = { version = "0.12", optional = true }

pluma-plugin-trait = "1.1"

[build-dependencies]
cpp_build = "0.5"

[dev-dependencies]
criterion = "0.8.0"

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

[profile.release]
opt-level = 3
lto = true
panic = "abort"
