[package]
edition = "2021"
rust-version = "1.85.0"
name = "scry-learn"
version = "0.1.0"
authors = ["esoc"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Machine learning toolkit in pure Rust"
documentation = "https://docs.rs/scry-learn"
readme = "README.md"
keywords = [
"machine-learning",
"decision-tree",
"random-forest",
"gradient-boosting",
"neural-network",
]
categories = [
"science",
"algorithms",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Slush97/esolearn"
[features]
csv = ["dep:csv"]
default = []
experimental = []
extended-bench = []
mmap = [
"dep:memmap2",
"dep:bytemuck",
]
polars = ["dep:polars"]
serde = ["dep:serde"]
[lib]
name = "scry_learn"
path = "src/lib.rs"
[[example]]
name = "crosslib_comparison"
path = "examples/crosslib_comparison.rs"
[[example]]
name = "gpu_tensor_bench"
path = "examples/gpu_tensor_bench.rs"
[[example]]
name = "industry_report"
path = "examples/industry_report.rs"
[[example]]
name = "universal_bank"
path = "examples/universal_bank.rs"
required-features = ["csv"]
[[test]]
name = "benchmark_audit"
path = "tests/benchmark_audit.rs"
[[test]]
name = "convergence"
path = "tests/convergence.rs"
[[test]]
name = "correctness"
path = "tests/correctness.rs"
[[test]]
name = "cv_benchmark"
path = "tests/cv_benchmark.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"
[[test]]
name = "golden_reference"
path = "tests/golden_reference.rs"
[[test]]
name = "golden_regression_test"
path = "tests/golden_regression_test.rs"
[[test]]
name = "integration_pipeline"
path = "tests/integration_pipeline.rs"
[[test]]
name = "mathematical_invariants"
path = "tests/mathematical_invariants.rs"
[[test]]
name = "memory_crosslib"
path = "tests/memory_crosslib.rs"
[[test]]
name = "nan_rejection"
path = "tests/nan_rejection.rs"
[[test]]
name = "numerical_stability"
path = "tests/numerical_stability.rs"
[[test]]
name = "optimization_equivalence"
path = "tests/optimization_equivalence.rs"
[[test]]
name = "parity_diagnostic"
path = "tests/parity_diagnostic.rs"
[[test]]
name = "partial_fit_streaming"
path = "tests/partial_fit_streaming.rs"
[[test]]
name = "production_bench"
path = "tests/production_bench.rs"
[[test]]
name = "quick_vitals"
path = "tests/quick_vitals.rs"
[[test]]
name = "regression_audit"
path = "tests/regression_audit.rs"
[[test]]
name = "schema_version"
path = "tests/schema_version.rs"
[[test]]
name = "serialization"
path = "tests/serialization.rs"
[[test]]
name = "sparse_dataset"
path = "tests/sparse_dataset.rs"
[[test]]
name = "statistical_robustness"
path = "tests/statistical_robustness.rs"
[[test]]
name = "stress_edge_cases"
path = "tests/stress_edge_cases.rs"
[[test]]
name = "tracking_alloc"
path = "tests/tracking_alloc.rs"
[[bench]]
name = "benchmark_config"
path = "benches/benchmark_config.rs"
[[bench]]
name = "competitor_bench"
path = "benches/competitor_bench.rs"
harness = false
[[bench]]
name = "fair_bench"
path = "benches/fair_bench.rs"
harness = false
[[bench]]
name = "full_model_benchmark"
path = "benches/full_model_benchmark.rs"
harness = false
[[bench]]
name = "honest_bench"
path = "benches/honest_bench.rs"
harness = false
[[bench]]
name = "industry_benchmark"
path = "benches/industry_benchmark.rs"
harness = false
[[bench]]
name = "ml_algorithms"
path = "benches/ml_algorithms.rs"
harness = false
[[bench]]
name = "scaling_benchmark"
path = "benches/scaling_benchmark.rs"
harness = false
[dependencies.bytemuck]
version = "1"
features = ["derive"]
optional = true
[dependencies.csv]
version = "1"
optional = true
[dependencies.memmap2]
version = "0.9"
optional = true
[dependencies.polars]
version = "0.46"
features = ["lazy"]
optional = true
default-features = false
[dependencies.rayon]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.csv]
version = "1"
[dev-dependencies.fastrand]
version = "2"
[dev-dependencies.insta]
version = "1"
features = ["glob"]
[dev-dependencies.linfa]
version = "0.8"
[dev-dependencies.linfa-clustering]
version = "0.8"
[dev-dependencies.linfa-elasticnet]
version = "0.8"
[dev-dependencies.linfa-ensemble]
version = "0.8.1"
[dev-dependencies.linfa-linear]
version = "0.8"
[dev-dependencies.linfa-logistic]
version = "0.8"
[dev-dependencies.linfa-nn]
version = "0.8"
[dev-dependencies.linfa-reduction]
version = "0.8"
[dev-dependencies.linfa-trees]
version = "0.8"
[dev-dependencies.ndarray]
version = "0.16"
[dev-dependencies.ndarray-rand]
version = "0.15"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.smartcore]
version = "0.4"
[lints.clippy]
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
many_single_char_names = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "allow"
return_self_not_must_use = "allow"
similar_names = "allow"
suboptimal_flops = "allow"
too_many_lines = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unreachable_pub = "allow"
unsafe_code = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("scry-gpu"))']