[package]
edition = "2021"
rust-version = "1.95"
name = "millwright"
version = "0.2.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A unified ML framework for Rust — proven Rust crates, assembled into one machine."
homepage = "https://millwright-rs.dev/"
readme = "README.md"
keywords = [
"machine-learning",
"ml",
"pipeline",
"sklearn",
"smartcore",
]
categories = [
"science",
"algorithms",
]
license = "MIT"
repository = "https://github.com/mi7plus/millwright"
[package.metadata.docs.rs]
features = ["full"]
[features]
anomaly = []
automl = [
"model-selection",
"ensemble",
"smartcore-backend",
]
calibration = []
default = [
"smartcore-backend",
"preprocessing",
"model-selection",
"ensemble",
]
diagnostics = [
"dep:regression-diagnostics",
"dep:ndarray",
]
eda = ["dep:polars"]
ensemble = ["dep:rayon"]
explain = ["dep:shap-rs"]
full = [
"smartcore-backend",
"preprocessing",
"model-selection",
"ensemble",
"eda",
"linfa-backend",
"hpo",
"diagnostics",
"explain",
"calibration",
"anomaly",
"viz",
"onnx",
"registry",
"monitor",
"serve",
"timeseries",
"incremental",
"automl",
]
hpo = [
"dep:hyperopt-rs",
"model-selection",
]
incremental = [
"dep:incremental-rs",
"dep:ndarray015",
]
linfa-backend = [
"dep:linfa",
"dep:linfa-clustering",
"dep:linfa-reduction",
"dep:linfa-nn",
"dep:ndarray",
]
model-selection = [
"dep:model-selection-rs",
"dep:ndarray",
"dep:rayon",
]
monitor = ["dep:driftwatch"]
onnx = [
"dep:onnx-export-rs",
"onnx-export-rs/smartcore-compat",
"dep:tract-onnx",
"dep:ndarray",
"dep:prost",
"smartcore-backend",
"smartcore/serde",
]
preprocessing = [
"dep:imbalance-rs",
"dep:ndarray",
]
python = [
"dep:pyo3",
"smartcore-backend",
"model-selection",
"explain",
"onnx",
"eda",
]
registry = [
"dep:serde",
"dep:serde_json",
"onnx",
]
serve = [
"dep:axum",
"dep:tokio",
"dep:serde",
"dep:serde_json",
"onnx",
]
smartcore-backend = ["dep:smartcore"]
timeseries = [
"dep:chronos-ts",
"dep:ndarray015",
]
viz = [
"dep:plotters-statistical",
"dep:plotters",
]
[lib]
name = "millwright"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[example]]
name = "automl"
path = "examples/automl.rs"
required-features = [
"smartcore-backend",
"automl",
"onnx",
]
[[example]]
name = "backends"
path = "examples/backends.rs"
required-features = [
"smartcore-backend",
"linfa-backend",
"hpo",
]
[[example]]
name = "explore"
path = "examples/explore.rs"
required-features = [
"eda",
"smartcore-backend",
]
[[example]]
name = "insight"
path = "examples/insight.rs"
required-features = [
"smartcore-backend",
"diagnostics",
"explain",
"viz",
]
[[example]]
name = "operations"
path = "examples/operations.rs"
required-features = [
"smartcore-backend",
"onnx",
"registry",
"monitor",
"serve",
]
[[example]]
name = "portability"
path = "examples/portability.rs"
required-features = [
"smartcore-backend",
"onnx",
]
[[example]]
name = "specialized"
path = "examples/specialized.rs"
required-features = [
"timeseries",
"incremental",
]
[[example]]
name = "spine"
path = "examples/spine.rs"
required-features = ["smartcore-backend"]
[[example]]
name = "trust"
path = "examples/trust.rs"
required-features = [
"calibration",
"anomaly",
]
[[example]]
name = "workflow"
path = "examples/workflow.rs"
required-features = [
"smartcore-backend",
"preprocessing",
"model-selection",
"ensemble",
]
[[test]]
name = "ensemble_zoo"
path = "tests/ensemble_zoo.rs"
[[test]]
name = "golden"
path = "tests/golden.rs"
[[test]]
name = "hero_snippet"
path = "tests/hero_snippet.rs"
[[test]]
name = "onnx_export"
path = "tests/onnx_export.rs"
[[test]]
name = "real_data"
path = "tests/real_data.rs"
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
required-features = ["smartcore-backend"]
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.chronos-ts]
version = "=0.1.0"
optional = true
[dependencies.driftwatch]
version = "=0.1.0"
optional = true
[dependencies.hyperopt-rs]
version = "=0.1.1"
optional = true
[dependencies.imbalance-rs]
version = "=0.5.0"
optional = true
[dependencies.incremental-rs]
version = "=0.1.2"
optional = true
[dependencies.linfa]
version = "=0.8.1"
optional = true
[dependencies.linfa-clustering]
version = "=0.8.1"
optional = true
[dependencies.linfa-nn]
version = "=0.8.1"
optional = true
[dependencies.linfa-reduction]
version = "=0.8.1"
optional = true
[dependencies.model-selection-rs]
version = "=0.1.0"
features = ["smartcore-metrics"]
optional = true
[dependencies.ndarray]
version = "0.16"
optional = true
[dependencies.ndarray015]
version = "0.15"
optional = true
package = "ndarray"
[dependencies.onnx-export-rs]
version = "=0.1.1"
features = ["smartcore-compat"]
optional = true
[dependencies.plotters]
version = "0.3.7"
features = [
"svg_backend",
"all_series",
]
optional = true
default-features = false
[dependencies.plotters-statistical]
version = "=0.2.0"
optional = true
[dependencies.polars]
version = "=0.55.2"
features = [
"csv",
"parquet",
"dtype-categorical",
"dtype-datetime",
"temporal",
"is_in",
]
optional = true
default-features = false
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.pyo3]
version = "0.24"
features = [
"extension-module",
"abi3-py39",
]
optional = true
[dependencies.rayon]
version = "1"
optional = true
[dependencies.regression-diagnostics]
version = "=0.2.0"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.shap-rs]
version = "=0.1.0"
optional = true
[dependencies.smartcore]
version = "=0.6.10"
optional = true
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"net",
]
optional = true
[dependencies.tract-onnx]
version = "0.23"
optional = true
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]