🏆 A ranked list of awesome machine learning Rust libraries. Updated weekly.
This curated list contains 140 awesome open-source projects with a total of 67K stars grouped into 7 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an issue, submit a pull request, or directly edit the projects.yaml. Contributions are very welcome!
🧙♂️ Discover other best-of lists or create your own.
- Machine Learning Frameworks 67 projects
- Text Data & NLP 46 projects
- Image Data 10 projects
- Data Loading & Extraction 7 projects
- Graph Data 3 projects
- Model Interpretability 1 projects
- MLOps 1 projects
- 🥇🥈🥉 Combined project-quality score
- ⭐️ Star count from GitHub
- 🐣 New project (less than 6 months old)
- 💤 Inactive project (6 months no activity)
- 💀 Dead project (12 months no activity)
- 📈📉 Project is trending up or down
- ➕ Project was recently added
- ❗️ Warning (e.g. missing/risky license)
- 👨💻 Contributors count from GitHub
- 🔀 Fork count from GitHub
- 📋 Issue count from GitHub
- ⏱️ Last update timestamp on package manager
- 📥 Download count from package manager
- 📦 Number of dependent projects
A binding for another project.
General-purpose machine learning and deep learning frameworks.
rusoto (🥇20 · ⭐ 2.3K) - AWS SDK for Rust. MIT
-
GitHub (👨💻 180 · 🔀 360 · 📋 860 - 21% open · ⏱️ 28.01.2021):
git clone https://github.com/rusoto/rusoto
tvm (🥇18 · ⭐ 6.5K) - Open deep learning compiler stack for cpu, gpu and specialized.. Apache-2 
-
GitHub (👨💻 530 · 🔀 1.8K · 📥 550 · 📋 1.8K - 7% open · ⏱️ 18.04.2021):
git clone https://github.com/apache/tvm
weld (🥇17 · ⭐ 2.6K · 💤) - High-performance runtime for data analytics applications. BSD-3
-
GitHub (👨💻 36 · 🔀 230 · 📦 2 · 📋 160 - 41% open · ⏱️ 04.04.2020):
git clone https://github.com/weld-project/weld
nalgebra (🥇17 · ⭐ 2.1K) - Linear algebra library for Rust. Apache-2
-
GitHub (👨💻 130 · 🔀 260 · 📋 440 - 35% open · ⏱️ 12.04.2021):
git clone https://github.com/dimforge/nalgebra
rust (🥇16 · ⭐ 3K) - Rust language bindings for TensorFlow. Apache-2 
-
GitHub (👨💻 37 · 🔀 240 · 📋 130 - 21% open · ⏱️ 18.02.2021):
git clone https://github.com/tensorflow/rust
ballista (🥇16 · ⭐ 2.2K) - Distributed compute platform implemented in Rust, and powered by.. Apache-2
-
GitHub (👨💻 37 · 🔀 140 · ⏱️ 11.04.2021):
git clone https://github.com/ballista-compute/ballista
xaynet (🥇16 · ⭐ 120) - Xaynet represents an agnostic Federated Machine Learning framework to.. Apache-2
-
GitHub (👨💻 28 · 🔀 18 · 📋 30 - 10% open · ⏱️ 14.04.2021):
git clone https://github.com/xaynetwork/xaynet
rust-numpy (🥈15 · ⭐ 440) - PyO3-based Rust binding of NumPy C-API. BSD-2
-
GitHub (👨💻 25 · 🔀 57 · 📋 59 - 22% open · ⏱️ 11.04.2021):
git clone https://github.com/PyO3/rust-numpy
rustlearn (🥈13 · ⭐ 490 · 💤) - Machine learning crate for Rust. Apache-2
-
GitHub (👨💻 9 · 🔀 43 · 📋 12 - 66% open · ⏱️ 21.06.2020):
git clone https://github.com/maciejkula/rustlearn
rust-autograd (🥈13 · ⭐ 290 · 📈) - Tensors and differentiable operations (like TensorFlow) in Rust. MIT
-
GitHub (👨💻 11 · 🔀 21 · ⏱️ 16.04.2021):
git clone https://github.com/raskr/rust-autograd
statrs (🥈13 · ⭐ 240) - Statistical computation library for Rust. MIT
-
GitHub (👨💻 20 · 🔀 35 · 📋 87 - 22% open · ⏱️ 31.03.2021):
git clone https://github.com/boxtown/statrs
granne (🥈13 · ⭐ 230 · 💤) - Graph-based Approximate Nearest Neighbor Search. MIT
-
GitHub (👨💻 5 · 🔀 19 · 📋 11 - 27% open · ⏱️ 29.09.2020):
git clone https://github.com/granne/granne
L2 (🥈11 · ⭐ 130) - l2 is a fast, Pytorch-style Tensor+Autograd library written in Rust. MIT
-
GitHub (🔀 14 · ⏱️ 04.02.2021):
git clone https://github.com/bilal2vec/L2
Show 54 hidden projects...
- tract (🥈15 · ⭐ 920) - Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference.
❗Unlicensed - Enzyme (🥈15 · ⭐ 450) - High-performance automatic differentiation of LLVM.
❗Unlicensed - evcxr (🥈14 · ⭐ 2.4K) -
Apache-2 - linfa (🥈14 · ⭐ 870) - A Rust machine learning framework.
❗Unlicensed - rusty-machine (🥈13 · ⭐ 1.2K · 💀) - Machine Learning library for Rust.
MIT - juice (🥈13 · ⭐ 770) - The Hacker's Machine Learning Engine.
❗Unlicensed - azure-sdk-for-rust (🥈13 · ⭐ 97) - This repository is for active development of the..
MIT - leaf (🥈12 · ⭐ 5.5K · 💀) - Open Machine Intelligence Framework for Hackers. (GPU/CPU).
❗Unlicensed - tch-rs (🥈12 · ⭐ 1K) - Rust bindings for the C++ api of PyTorch.
❗Unlicensed - cleora (🥈12 · ⭐ 310 · 🐣) - Cleora AI is a general-purpose model for efficient, scalable..
❗Unlicensed - orkhon (🥈12 · ⭐ 98) - Orkhon: ML Inference Framework and Server Runtime.
MIT - sprs (🥈11 · ⭐ 230) - sparse linear algebra library for rust.
❗Unlicensed - Peroxide (🥈11 · ⭐ 210) - Rust numeric library with R, MATLAB & Python syntax.
❗Unlicensed - rsrl (🥈11 · ⭐ 99 · 💤) - A fast, safe and easy to use reinforcement learning framework in Rust.
MIT - gym-rs (🥈11 · ⭐ 32 · 💤) - OpenAI Gym bindings for Rust.
MIT - black-jack (🥈11 · ⭐ 26) - DataFrame / Series data processing in Rust.
❗️GPL-3.0 - RustNN (🥉10 · ⭐ 300 · 💀) - A neural network crate.
Apache-2 - deeplearn-rs (🥉10 · ⭐ 190 · 💀) - Neural networks in Rust.
MIT - alumina (🥉10 · ⭐ 77) - A deep learning library for rust.
MIT - torchrs (🥉10 · ⭐ 76 · 💀) - Deep Learning in Rust with the PyTorch API.
BSD-2 - ffsvm-rust (🥉10 · ⭐ 41 · 💀) - FFSVM stands for Really Fast Support Vector Machine.
MIT - faiss-rs (🥉10 · ⭐ 37) - Rust language bindings for Faiss.
❗Unlicensed - rurel (🥉10 · ⭐ 28) - Flexible, reusable reinforcement learning (Q learning) implementation in..
MPL-2.0 - rustdef (🥉10 · ⭐ 11) - Jupyter extension for rust.
MIT - smartcore (🥉9 · ⭐ 120) - SmartCore is a comprehensive library for machine learning and..
Apache-2 - NeuroFlow (🥉9 · ⭐ 53 · 💀) - Awesome deep learning crate.
MIT - tractjs (🥉9 · ⭐ 50) - Run ONNX and TensorFlow inference in the browser.
❗Unlicensed - rustml (🥉9 · ⭐ 46 · 💀) - Machine learning in Rust.
❗Unlicensed - kdtree-rs (🥉8 · ⭐ 96) - K-dimensional tree in Rust for fast geospatial indexing and..
❗Unlicensed - hal (🥉8 · ⭐ 75 · 💀) - Rust based Cross-GPU Machine Learning.
MIT - kodama (🥉8 · ⭐ 49) - Fast hierarchical agglomerative clustering in Rust.
MIT - RusticSOM (🥉8 · ⭐ 20) - Rust library for Self Organising Maps (SOM).
MIT - ngt-rs (🥉8 · ⭐ 8) - Rust wrappers for NGT approximate nearest neighbor search.
Apache-2 - autograph (🥉7 · ⭐ 110) - Machine Learning Library for Rust.
❗Unlicensed - gamma (🥉7 · ⭐ 100) - A graph library for Rust.
❗Unlicensed - fwumious_wabbit (🥉7 · ⭐ 97) - Fwumious Wabbit, fast on-line machine learning toolkit..
❗Unlicensed - hnsw (🥉7 · ⭐ 52 · 💤) - HNSW ANN from the paper Efficient and robust approximate nearest neighbor..
BSD-2 - tflite-rs (🥉7 · ⭐ 39) -
❗Unlicensed - cogent (🥉7 · ⭐ 26) - Simple neural network library for classification written in Rust.
❗Unlicensed - rust-dl-webserver (🥉7 · ⭐ 17) - Example of serving deep learning models in Rust with..
❗Unlicensed - crfsuite-rs (🥉7 · ⭐ 13) - Rust binding to crfsuite.
MIT - drug (🥉7 · ⭐ 10 · 💀) - Differentiable Rust Graphs (neural network library).
MIT - hwt (🥉7 · ⭐ 6 · 💀) - Hamming Weight Tree from the paper Online Nearest Neighbor Search in Hamming..
MIT - liblinear-rs (🥉7 · ⭐ 5 · 💀) - Rust language bindings for the LIBLINEAR C/C++ library.
MIT - mushin (🥉6 · ⭐ 160) - Compile-time creation of neural networks.
❗Unlicensed - prophet (🥉6 · ⭐ 39 · 💀) - A simple neural net implementation.
❗Unlicensed - vpsearch (🥉6 · ⭐ 25) - C library for finding nearest (most similar) element in a set.
❗Unlicensed - revonet (🥉6 · ⭐ 14 · 💀) - Rust implementation of real-coded GA for solving optimization..
❗️GPL-3.0 - fann-rs (🥉6 · ⭐ 11 · 💀) - Rust wrapper for the Fast Artificial Neural Network library.
❗️LGPL-3.0 - bayespam (🥉6 · ⭐ 4) - A simple bayesian spam classifier written in Rust.
MIT - batched-fn (🥉6 · ⭐ 3) - Rust middleware for serving deep learning models with batched..
Apache-2 - rstats (🥉6 · ⭐ 2) - Rust Statistics and Vector Algebra Library.
Apache-2 - reductive (🥉6) - Vector quantization.
Apache-2 - cntk-rs (🥉5 · ⭐ 20 · 💀) - Wrapper around Microsoft CNTK library.
❗Unlicensed
Libraries for processing, cleaning, manipulating, and analyzing text data as well as for diverse NLP tasks.
tokenizers (🥇21 · ⭐ 4.5K) - Fast State-of-the-Art Tokenizers optimized for Research and.. Apache-2
-
GitHub (👨💻 40 · 🔀 330 · 📦 31 · 📋 410 - 22% open · ⏱️ 05.04.2021):
git clone https://github.com/huggingface/tokenizers
grex (🥇17 · ⭐ 3.5K) - A command-line tool and library for generating regular expressions from.. Apache-2
-
GitHub (👨💻 3 · 🔀 81 · 📥 2.9K · 📋 30 - 23% open · ⏱️ 28.03.2021):
git clone https://github.com/pemistahl/grex
whatlang-rs (🥇15 · ⭐ 430) - Natural language detection library for Rust. Try demo online:.. MIT
-
GitHub (👨💻 14 · 🔀 28 · 📋 38 - 7% open · ⏱️ 18.04.2021):
git clone https://github.com/greyblake/whatlang-rs
rust-bert (🥈13 · ⭐ 550) - Rust native ready-to-use NLP pipelines and transformer-based.. Apache-2
-
GitHub (👨💻 9 · 🔀 38 · 📋 41 - 19% open · ⏱️ 12.04.2021):
git clone https://github.com/guillaume-be/rust-bert
nnsplit (🥈13 · ⭐ 160) - Semantic text segmentation. For sentence boundary detection, compound.. MIT
-
GitHub (👨💻 4 · 🔀 11 · 📦 2 · 📋 19 - 36% open · ⏱️ 15.04.2021):
git clone https://github.com/bminixhofer/nnsplit
lingua-rs (🥈12 · ⭐ 270) - The most accurate natural language detection library in the Rust.. Apache-2
-
GitHub (👨💻 2 · 🔀 4 · 📋 13 - 38% open · ⏱️ 08.04.2021):
git clone https://github.com/pemistahl/lingua-rs
lindera (🥈11 · ⭐ 100) - A morphological analysis library. MIT
-
GitHub (👨💻 6 · 🔀 12 · 📋 30 - 16% open · ⏱️ 16.01.2021):
git clone https://github.com/lindera-morphology/lindera
fancy-regex (🥈10 · ⭐ 200) - Rust library for regular expressions using fancy features like look-.. MIT
-
GitHub (👨💻 12 · 🔀 13 · 📋 13 - 15% open · ⏱️ 15.02.2021):
git clone https://github.com/fancy-regex/fancy-regex
Show 38 hidden projects...
- nlprule (🥇14 · ⭐ 320) - A fast, low-resource Natural Language Processing and Text..
❗Unlicensed - snips-nlu-rs (🥇14 · ⭐ 320 · 💀) - Snips NLU rust implementation.
❗Unlicensed - aho-corasick (🥈11 · ⭐ 440) - A fast implementation of Aho-Corasick in Rust.
❗Unlicensed - rs-natural (🥈11 · ⭐ 190 · 💀) - Natural Language Processing for Rust.
MIT - rustling-ontology (🥈11 · ⭐ 110) - Ontology for rustling.
❗Unlicensed - rustling (🥈11 · ⭐ 63 · 💀) - Rust implementation of Duckling.
❗Unlicensed - snips-nlu-ontology (🥈11 · ⭐ 55 · 💀) - Ontology of Snips NLU.
❗Unlicensed - finalfusion-rust (🥈11 · ⭐ 36) - finalfusion embeddings in Rust.
❗Unlicensed - rust-tokenizers (🥈10 · ⭐ 80) - Rust-tokenizer offers high-performance tokenizers for modern..
Apache-2 - rust-stemmers (🥈10 · ⭐ 61 · 💀) - A rust implementation of some popular snowball stemming..
MIT - finalfrontier (🥈10 · ⭐ 60) - Context-sensitive word embeddings with subwords. In Rust.
❗Unlicensed - deepfrog (🥈10 · ⭐ 13) - An NLP-suite powered by deep learning.
❗️GPL-3.0 - vtext (🥉9 · ⭐ 110 · 💤) - Simple NLP in Rust with Python bindings.
Apache-2 - dpar (🥉9 · ⭐ 39 · 💤) - Neural network transition-based dependency parser (in Rust).
Apache-2 - sticker (🥉9 · ⭐ 27) - Succeeded by SyntaxDot: https://github.com/tensordot/syntaxdot.
❗Unlicensed - chr (🥉9 · ⭐ 20) - A command-line tool that gives information about Unicode characters.
Apache-2 - gazetteer-entity-parser (🥉9 · ⭐ 14 · 💀) - Rust library for parsing and resolving entity values..
❗Unlicensed - snips-nlu-parsers (🥉9 · ⭐ 11 · 💀) - Rust crate for entity parsing.
❗Unlicensed - sentencepiece (🥉9 · ⭐ 6) - Rust binding for the sentencepiece library.
Apache-2 - word2vec (🥉8 · ⭐ 20 · 💀) - Rust interface to word2vec.
MIT - rust-stop-words (🥉8 · ⭐ 3) - Common stop words in a variety of languages.
MIT - awabi (🥉8 · ⭐ 3) - A morphological analyzer using mecab dictionary.
MIT - fasttext-rs (🥉7 · ⭐ 27) - fastText Rust binding.
❗Unlicensed - word2vec-rs (🥉7 · ⭐ 25 · 📈) - pure rust implemention of word2vec.
❗Unlicensed - rust-sbert (🥉7 · ⭐ 15) - Rust port of sentence-transformers..
Apache-2 - lumberjack (🥉7 · ⭐ 11 · 💀) - Read and modify constituency trees in Rust.
Apache-2 - syntaxdot (🥉7 · ⭐ 10 · 🐣) - Neural syntax annotator, supporting sequence labeling,..
❗Unlicensed - alpino-tokenizer (🥉7 · ⭐ 2) - Rust wrapper for the Alpino tokenizer.
Apache-2 - seqalign (🥉7 · 💤) - Sequence alignments.
Apache-2 - spm_precompiled (🥉6 · ⭐ 9) - Highly specialized crate to parse and use..
Apache-2 - srx (🥉6 · ⭐ 3 · 🐣) - A mostly compliant Rust implementation of the Segmentation Rules..
❗Unlicensed - blingfire-rs (🥉5 · ⭐ 11 · 💤) - Rust wrapper for the BlingFire tokenization library.
MIT - rustberta-snli (🥉5 · ⭐ 11 · 🐣) - A Rust implementation of a RoBERTa classification..
❗Unlicensed - ohnomore (🥉5) - Explorations in lemmatization.
❗Unlicensed - wordpieces (🥉4 · ⭐ 1) - Split tokens into word pieces.
❗Unlicensed - rust-tfidf (🥉3 · ⭐ 9) -
❗Unlicensed - aleph-alpha-tokenizer (🥉3 · ⭐ 5 · 💤) - A rustic language tokenizer library inspired by..
❗Unlicensed - misspeller (🥉3) - Take correctly spelled words and return common spelling mistakes.
❗Unlicensed
Libraries for image & video processing, manipulation, and augmentation as well as libraries for computer vision.
cgmath (🥇15 · ⭐ 790) - A linear algebra and mathematics library for computer graphics. Apache-2
-
GitHub (👨💻 92 · 🔀 130 · 📋 160 - 30% open · ⏱️ 06.04.2021):
git clone https://github.com/rustgd/cgmath
opencv-rust (🥈14 · ⭐ 630) - Rust bindings for OpenCV 3 & 4. MIT 
-
GitHub (👨💻 26 · 🔀 65 · 📋 180 - 4% open · ⏱️ 18.04.2021):
git clone https://github.com/twistedfall/opencv-rust
imageproc (🥈14 · ⭐ 350) - Image processing operations. MIT
-
GitHub (👨💻 50 · 🔀 81 · 📋 140 - 37% open · ⏱️ 16.04.2021):
git clone https://github.com/image-rs/imageproc
cv (🥉11 · ⭐ 110) - Rust CV mono-repo. MIT
-
GitHub (👨💻 4 · 🔀 7 · 📋 26 - 92% open · ⏱️ 15.03.2021):
git clone https://github.com/rust-cv/cv
Show 6 hidden projects...
- texture-synthesis (🥈14 · ⭐ 1.4K) - Example-based texture synthesis written in Rust.
❗Unlicensed - rustface (🥈14 · ⭐ 270) - Face detection library for the Rust programming language.
❗Unlicensed - visual-odometry-rs (🥉9 · ⭐ 28 · 💀) - Visual Odometry in Rust (vors).
MPL-2.0 - visionmagic (🥉9 · ⭐ 25 · 🐣) - Collection of vision & graphics algorithms.
❗Unlicensed - rust-cv-convert (🥉7 · ⭐ 10 · 🐣) - Type conversion among popular Rust computer vision libraries.
MIT - image-ssd (🥉5 · ⭐ 1) - A Rust library for object detection via SSD MobileNet.
MIT
Libraries for loading, collecting, and extracting data from a variety of data sources and formats.
vector (🥇23 · ⭐ 6.9K) - A high-performance, high-reliability observability data pipeline. MPL-2.0
-
GitHub (👨💻 130 · 🔀 470 · 📥 35K · 📋 3.4K - 34% open · ⏱️ 17.04.2021):
git clone https://github.com/timberio/vector
polars (🥈17 · ⭐ 1.4K · 📈) - Fast multi-threaded DataFrame library in Rust and Python. MIT
-
GitHub (👨💻 22 · 🔀 68 · 📦 3 · 📋 260 - 10% open · ⏱️ 18.04.2021):
git clone https://github.com/ritchie46/polars
rust-dataframe (🥉10 · ⭐ 270) - A Rust DataFrame implementation, built on Apache Arrow. Apache-2
-
GitHub (👨💻 4 · 🔀 18 · 📋 38 - 31% open · ⏱️ 26.10.2020):
git clone https://github.com/nevi-me/rust-dataframe
Show 4 hidden projects...
- rayon (🥈15 · ⭐ 5K) - Rayon: A data parallelism library for Rust.
❗Unlicensed - rust-tfrecord (🥉9 · ⭐ 13) - A Rust crate that reads and writes tfrecord files.
MIT - tch-serde (🥉9 · ⭐ 3) - Serialize/Deserialize tch-rs types with serde.
MIT - NewsAggregator (🥉5 · 🐣) - A fast, searchable news article aggregation service using various..
Apache-2
Libraries for graph processing, clustering, embedding, and machine learning tasks.
graphlib (🥉14 · ⭐ 150 · 💤) - Simple but powerful graph library for Rust. MIT
-
GitHub (👨💻 11 · 🔀 10 · 📋 26 - 19% open · ⏱️ 01.07.2020):
git clone https://github.com/purpleprotocol/graphlib
Show 2 hidden projects...
Libraries to visualize, explain, debug, evaluate, and interpret machine learning models.
Show 1 hidden projects...
- eval-metrics (🥇5 · ⭐ 1 · ➕) - Evaluation metrics for machine learning.
❗Unlicensed
Libraries to design workflows, deploy, test, and maintain machine learning pipelines.
Show 1 hidden projects...
- h2o-kubernetes (🥇8 · ⭐ 14 · ➕) - H2O Open Source Kubernetes operator and a command-line..
Apache-2
- best-of-ml-python: A ranked list of awesome machine learning Python libraries.
- best-of-ml-julia: A ranked list of awesome machine learning Julia libraries.
Contributions are encouraged and always welcome! If you like to add or update projects, choose one of the following ways:
- Open an issue by selecting one of the provided categories from the issue page and fill in the requested information.
- Modify the projects.yaml with your additions or changes, and submit a pull request. This can also be done directly via the Github UI.
If you like to contribute to or share suggestions regarding the project metadata collection or markdown generation, please refer to the best-of-generator repository. If you like to create your own best-of list, we recommend to follow this guide.
For more information on how to add or update projects, please read the contribution guidelines. By participating in this project, you agree to abide by its Code of Conduct.