Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Machine Learning
  3. smartcore

smartcore

Apache-2.0Rustv0.5.0

A fast, ergonomic machine learning library for Rust with broad algorithm coverage and WASM-first defaults.

Visit WebsiteGitHubGitHub
912 stars93 forks0 contributors

What is smartcore?

smartcore is a comprehensive machine learning library for Rust that provides production-friendly APIs, strong typing, and good defaults while remaining flexible for research and experimentation. It covers classical supervised and unsupervised methods with a modular linear algebra abstraction and optional ndarray support.

Target Audience

Rust developers building machine learning applications for production, especially those targeting WebAssembly or embedded deployments, as well as researchers needing a flexible, idiomatic Rust ML library.

Value Proposition

Developers choose smartcore for its WASM-first design tuned for portability, ergonomic API with consistent traits, and broad algorithm coverage including linear models, tree-based methods, ensembles, SVMs, and clustering, all while maintaining strong typing and modular linear algebra.

Overview

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

Use Cases

Best For

  • Building machine learning applications in Rust that need to run in WebAssembly or embedded environments.
  • Implementing classical supervised learning algorithms like linear regression, logistic regression, and SVM in a type-safe Rust API.
  • Implementing classical unsupervised learning algorithms like K-Means, DBSCAN, and hierarchical clustering in Rust.
  • Developing ML pipelines with practical utilities for model selection, evaluation, and data preprocessing in Rust.
  • Experimenting with ML algorithms in Jupyter notebooks using Rust via the companion smartcore-jupyter repository.
  • Projects requiring a modular linear algebra abstraction with optional ndarray integration for array-first workflows.

Not Ideal For

  • Teams primarily using Python who need extensive deep learning or neural network frameworks like TensorFlow or PyTorch.
  • Projects requiring out-of-the-box GPU acceleration for training or inference, as smartcore's focus is on CPU-based classical methods.
  • Applications dependent on a large ecosystem of pre-trained models or third-party integrations common in mature ML libraries like scikit-learn.
  • Organizations needing stable, long-term APIs without breaking changes, given smartcore's recent refactors and deprecations in version 0.4.

Pros & Cons

Pros

WASM-First Portability

Defaults are tuned for WebAssembly and embedded deployments, making it ideal for browser-based or resource-constrained environments, with features like serde and datasets opt-in to minimize footprint.

Broad Algorithm Coverage

Covers classical supervised and unsupervised methods, including linear models, tree-based ensembles, SVMs, and clustering, as highlighted in the Algorithms section for comprehensive ML workflows.

Ergonomic API Design

Provides consistent traits across modules and examples using native Rust vectors and matrices, with a quick start example demonstrating ease of use for tasks like KNN classification.

Modular Linear Algebra

Offers strong linear algebra traits with optional ndarray integration, allowing flexibility for array-first workflows while maintaining abstraction, as noted in the Highlights.

Cons

No Deep Learning Support

Focuses solely on classical machine learning algorithms, lacking neural networks or deep learning capabilities, which limits its use for cutting-edge AI tasks.

Breaking Changes Risk

Recent version updates like v0.4 introduced breaking changes and deprecations, such as dropping nalgebra-bindings, requiring migration efforts and potentially disrupting existing codebases.

Smaller Ecosystem

As a Rust library, it has a nascent community compared to Python-based alternatives, which can mean fewer third-party tools, pre-trained models, or community support resources.

Frequently Asked Questions

Quick Stats

Stars912
Forks93
Contributors0
Open Issues43
Last commit28 days ago
CreatedSince 2019

Tags

#statistical-models#data-science#machine-learning-algorithms#rust-lang#statistical-learning#classification#algorithm-library#wasm#linear-algebra#numerical-computing#rust-library#regression#rust#machine-learning#supervised-learning#model-selection#unsupervised-learning#clustering

Built With

R
Rust

Links & Resources

Website

Included in

Machine Learning72.2kRust56.6k
Auto-fetched 9 hours ago

Related Projects

PyTorch - Tensors and Dynamic neural networks in Python with strong GPU accelerationPyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Stars99,861
Forks27,765
Last commit9 hours ago
keraskeras

Deep Learning for humans

Stars64,063
Forks19,776
Last commit13 hours ago
streamlitstreamlit

Streamlit — A faster way to build and share data apps.

Stars44,564
Forks4,256
Last commit13 hours ago
gradiogradio

Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!

Stars42,566
Forks3,465
Last commit21 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub