smartcorelib/smartcore

A comprehensive library for machine learning and numerical computing. Apply Machine Learning with Rust leveraging first principles.

What it solves

Smartcore is a comprehensive machine learning library for the Rust programming language. It provides a fast, ergonomic, and production-ready set of tools for performing classical supervised and unsupervised learning, filling the gap for a high-performance ML framework in the Rust ecosystem.

How it works

The library uses a modular linear algebra abstraction and optional ndarray support to handle data operations. It is designed with a "WASM-first" approach, ensuring portability across browsers and embedded systems. The API is structured around consistent traits, allowing users to fit models and make predictions using a unified interface across different algorithms.

Who it’s for

It is intended for Rust developers who need to implement machine learning models in production environments or for researchers who want to experiment with ML algorithms using a strongly-typed, high-performance language.

Highlights

  • Broad Algorithm Coverage: Includes linear models (OLS, Ridge, Lasso), tree-based methods (Random Forest, Extra Trees), SVMs, K-Nearest Neighbors, Naive Bayes, and clustering (K-Means, DBSCAN).
  • WASM/WASI Support: Optimized for portability and browser-based deployments by default.
  • Integrated Utilities: Built-in CSV readers, dataset generators (blobs, circles, moons), and sample datasets (digits, diabetes, breast cancer).
  • Crate Ecosystem: Optional integration with serde for serialization and ndarray for array-first workflows.

Related

  • Project
  • Project
  • Project
  • Project
  • Project