[package]
edition = "2021"
rust-version = "1.75"
name = "irithyll"
version = "8.2.3"
build = false
exclude = [
".claude/",
"irithyll-python/",
"irithyll-core/",
"irithyll-cli/",
"marketing/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Streaming machine learning in Rust -- gradient boosted trees, kernel methods, linear models, and composable pipelines"
documentation = "https://docs.rs/irithyll"
readme = "README.md"
keywords = [
"machine-learning",
"gradient-boosting",
"streaming",
"online-learning",
"decision-trees",
]
categories = [
"algorithms",
"science",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/evilrat420/irithyll"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
arrow = ["dep:arrow"]
default = ["serde-json"]
full = [
"serde-json",
"serde-bincode",
"kmeans-binning",
"parallel",
"arrow",
"parquet",
"onnx",
"neural-leaves",
"simd",
]
kmeans-binning = ["irithyll-core/kmeans-binning"]
neural-leaves = []
onnx = ["dep:prost"]
parallel = [
"dep:rayon",
"irithyll-core/parallel",
]
parquet = [
"dep:parquet",
"arrow",
]
serde-bincode = [
"dep:bincode",
"irithyll-core/serde",
]
serde-json = [
"dep:serde_json",
"irithyll-core/serde",
]
simd = ["irithyll-core/simd"]
[lib]
name = "irithyll"
path = "src/lib.rs"
[[example]]
name = "async_ingestion"
path = "examples/async_ingestion.rs"
[[example]]
name = "basic_regression"
path = "examples/basic_regression.rs"
[[example]]
name = "ccipca_reduction"
path = "examples/ccipca_reduction.rs"
[[example]]
name = "classification"
path = "examples/classification.rs"
[[example]]
name = "custom_loss"
path = "examples/custom_loss.rs"
[[example]]
name = "drift_detection"
path = "examples/drift_detection.rs"
[[example]]
name = "krls_nonlinear"
path = "examples/krls_nonlinear.rs"
[[example]]
name = "model_checkpointing"
path = "examples/model_checkpointing.rs"
[[example]]
name = "pipeline_composition"
path = "examples/pipeline_composition.rs"
[[example]]
name = "rls_confidence"
path = "examples/rls_confidence.rs"
[[example]]
name = "streaming_metrics"
path = "examples/streaming_metrics.rs"
[[test]]
name = "convergence"
path = "tests/convergence.rs"
[[test]]
name = "generate_bench_model"
path = "tests/generate_bench_model.rs"
[[test]]
name = "integration_drift"
path = "tests/integration_drift.rs"
[[test]]
name = "integration_sgbt"
path = "tests/integration_sgbt.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[[bench]]
name = "comparison_bench"
path = "benches/comparison_bench.rs"
harness = false
[[bench]]
name = "ensemble_bench"
path = "benches/ensemble_bench.rs"
harness = false
[[bench]]
name = "histogram_bench"
path = "benches/histogram_bench.rs"
harness = false
[[bench]]
name = "packed_inference_bench"
path = "benches/packed_inference_bench.rs"
harness = false
[[bench]]
name = "parallel_bench"
path = "benches/parallel_bench.rs"
harness = false
[[bench]]
name = "pipeline_bench"
path = "benches/pipeline_bench.rs"
harness = false
[[bench]]
name = "quantized_bench"
path = "benches/quantized_bench.rs"
harness = false
[[bench]]
name = "real_dataset_bench"
path = "benches/real_dataset_bench.rs"
harness = false
[[bench]]
name = "scaling_bench"
path = "benches/scaling_bench.rs"
harness = false
[[bench]]
name = "throughput_bench"
path = "benches/throughput_bench.rs"
harness = false
[[bench]]
name = "training_bench"
path = "benches/training_bench.rs"
harness = false
[[bench]]
name = "tree_bench"
path = "benches/tree_bench.rs"
harness = false
[dependencies.arrow]
version = "54"
features = ["prettyprint"]
optional = true
default-features = false
[dependencies.bincode]
version = "2"
features = ["serde"]
optional = true
[dependencies.futures-core]
version = "0.3"
[dependencies.irithyll-core]
version = "0.5.0"
features = [
"std",
"serde",
]
[dependencies.parking_lot]
version = "0.12"
[dependencies.parquet]
version = "54"
features = ["arrow"]
optional = true
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1"
features = [
"rt",
"sync",
"macros",
]
[dependencies.tracing]
version = "0.1"
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.5"
[dev-dependencies.tokio]
version = "1"
features = ["full"]