[package]
edition = "2024"
rust-version = "1.89.0"
name = "rustyml"
version = "0.13.0"
authors = ["SomeB1oody <stanyin64@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A high-performance machine learning & deep learning library in pure Rust, offering ML algorithms and neural network support"
documentation = "https://docs.rs/crate/rustyml"
readme = "README.md"
keywords = [
"machine_learning",
"ML",
"neural_network",
"AI",
]
categories = [
"mathematics",
"science",
"algorithms",
]
license = "MIT"
repository = "https://github.com/SomeB1oody/RustyML"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[package.metadata.playground]
features = ["default"]
[features]
default = [
"machine_learning",
"neural_network",
]
full = [
"machine_learning",
"neural_network",
"utils",
"math",
"metrics",
]
machine_learning = [
"math",
"dep:ndarray",
"dep:nalgebra",
"dep:rayon",
"dep:ndarray-rand",
"dep:ahash",
"dep:serde",
"dep:postcard",
"dep:thiserror",
]
math = [
"dep:ndarray",
"dep:ahash",
"dep:rayon",
"dep:gemm",
]
metrics = [
"math",
"dep:ndarray",
"dep:ahash",
]
neural_network = [
"math",
"dep:ndarray",
"dep:rayon",
"dep:ndarray-rand",
"dep:indicatif",
"dep:serde",
"dep:postcard",
"dep:thiserror",
]
show_progress = ["dep:indicatif"]
utils = [
"math",
"dep:ndarray",
"dep:nalgebra",
"dep:rayon",
"dep:ahash",
"dep:serde",
"dep:postcard",
"dep:ndarray-rand",
"dep:thiserror",
]
[lib]
name = "rustyml"
path = "src/lib.rs"
[[test]]
name = "machine_learning"
path = "tests/machine_learning/main.rs"
required-features = ["machine_learning"]
[[test]]
name = "neural_network"
path = "tests/neural_network/main.rs"
required-features = ["neural_network"]
[[test]]
name = "utils"
path = "tests/utils/main.rs"
required-features = ["utils"]
[[test]]
name = "metrics"
path = "tests/metrics/main.rs"
required-features = ["metrics"]
[[test]]
name = "math"
path = "tests/math.rs"
required-features = ["math"]
[[bench]]
name = "nn_end_to_end"
path = "benches/benchmarks/nn_end_to_end.rs"
harness = false
required-features = ["neural_network"]
[[bench]]
name = "ml_end_to_end"
path = "benches/benchmarks/ml_end_to_end.rs"
harness = false
required-features = [
"machine_learning",
"utils",
]
[[bench]]
name = "eigensolver"
path = "benches/benchmarks/eigensolver.rs"
harness = false
required-features = ["utils"]
[[bench]]
name = "matmul_kernels"
path = "benches/benchmarks/matmul_kernels.rs"
harness = false
required-features = ["neural_network"]
[[bench]]
name = "parallel_gates"
path = "benches/calibrations/parallel_gates/main.rs"
harness = false
required-features = [
"machine_learning",
"neural_network",
]
[[bench]]
name = "gemm_calibrate"
path = "benches/calibrations/gemm_calibrate.rs"
harness = false
required-features = ["math"]
[[bench]]
name = "silhouette"
path = "benches/benchmarks/silhouette.rs"
harness = false
required-features = ["metrics"]
[dependencies.ahash]
version = "0.8.12"
features = ["serde"]
optional = true
[dependencies.gemm]
version = "0.19.0"
features = ["rayon"]
optional = true
[dependencies.indicatif]
version = "0.18.4"
optional = true
[dependencies.nalgebra]
version = "0.35.0"
optional = true
[dependencies.ndarray]
version = "0.17.2"
features = [
"rayon",
"serde",
]
optional = true
[dependencies.ndarray-rand]
version = "0.16.0"
optional = true
[dependencies.postcard]
version = "1.1.3"
features = ["use-std"]
optional = true
[dependencies.rayon]
version = "1.12.0"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true
[dependencies.thiserror]
version = "2.0.18"
optional = true
[dev-dependencies.approx]
version = "0.5.1"
[dev-dependencies.criterion]
version = "0.8.2"
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3