[package] name = "rtx-nmf" version = "1.0.0" edition.workspace = true rust-version = "1.92" authors = ["RustyTorch Team"] license = "MIT OR Apache-2.0" description = "GPU-accelerated Non-negative Matrix Factorization (NMF) for RustyTorch++" repository = "https://github.com/rustytorch/rustytorch" [dependencies] # Core RTX dependencies rtx-tensor = { path = "../../core/rtx-tensor" } anyhow = "1.0" thiserror = "2" tracing = "0.1" # GPU acceleration - using workspace cudarc 0.18.1 cudarc = { workspace = true, optional = true } # Numeric computing nalgebra = "0.32" rand = "0.8" # Serialization for model persistence serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Image processing for color unmixing image = "0.25" base64 = "0.21" # Metal GPU acceleration (macOS only) [target.'cfg(target_os = "macos")'.dependencies] rtx-metal = { workspace = true, optional = true } [dev-dependencies] # Testing framework criterion = { version = "0.5", features = ["html_reports"] } approx = "0.5" tempfile = "3.8" [features] # No default GPU - select cuda or metal explicitly default = [] cuda = ["cudarc", "rtx-tensor/cuda"] metal = ["rtx-metal", "rtx-tensor/metal"] metal4 = ["metal"] # Enable Metal 4 features (requires macOS 26+) [lib] name = "rtx_nmf" path = "src/lib.rs" [[example]] name = "basic_usage" path = "examples/basic_usage.rs" [package.metadata.docs.rs] features = ["cuda"] [lints] workspace = true