This repository is a list of machine learning libraries written in Rust.
It's a compilation of GitHub repositories, blogs, books, movies, discussions, papers.
This repository is targeted at people who are thinking of migrating from Python.
It is divided into several basic library and algorithm categories. And it also contains libraries that are no longer maintained and small libraries. It has commented on the helpful parts of the code. It also commented on good libraries within each category.
We can find a better way to use Rust for Machine Learning.
ToC
- Support Tools
- Comprehensive (like sklearn)
- Comprehensive (statistics)
- Gradient Boosting
- Deep Neural Network
- Graph Model
- Natural Language Processing (model)
- Recommendation
- Information Retrieval
- Reinforcement Learning
- Supervised Learning
- Unsupervised Learning & Clustering Model
- Statistical Model
- Evolutionary Algorithm
- Reference
- Thanks
Support Tools
Jupyter Notebook
evcxr
can be handled as Jupyter Kernel or REPL. It is helpful for learning and validation.
- google/evcxr - An evaluation context for Rust.
- emakryo/rustdef - Jupyter extension for rust.
- murarth/rusti - REPL for the Rust programming language
Graph Plot
It might want to try plotters
for now.
- 38/plotters - A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely
🦀 📈 🚀 - igiagkiozis/plotly - Plotly for Rust
- milliams/plotlib - Data plotting library for Rust
- tiby312/poloto - A simple 2D plotting library that outputs graphs to SVG that can be styled using CSS.
- askanium/rustplotlib - A pure Rust visualization library inspired by D3.js
- SiegeLord/RustGnuplot - A Rust library for drawing plots, powered by Gnuplot.
- saona-raimundo/preexplorer - Externalize easily the plotting process from Rust to gnuplot.
- procyon-rs/vega_lite_4.rs - rust api for vega-lite v4
- procyon-rs/showata - A library of to show data (in browser, evcxr_jupyter) as table, chart...
- coder543/dataplotlib - Scientific plotting library for Rust
- shahinrostami/chord_rs - Rust crate for creating beautiful interactive Chord Diagrams. Pro version available at https://m8.fyi/chord
ASCII line graph:
- loony-bean/textplots-rs Terminal plotting library for Rust
- orhanbalci/rasciigraph Zero dependency Rust crate to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
- jakobhellermann/piechart a rust crate for drawing fancy pie charts in the terminal
- milliams/plot Command-line plotting tool written in Rust
Examples:
- Plotters Developer's Guide - Plotter Developer's Guide https://plotters-rs.github.io/book/intro/introduction.html
- Plotly.rs - Plotly.rs Book https://igiagkiozis.github.io/plotly/content/plotly_rs.html
- petgraph_review https://timothy.hobbs.cz/rust-play/petgraph_review.html
- evcxr-jupyter-integration https://plotters-rs.github.io/plotters-doc-data/evcxr-jupyter-integration.html
- Rust for Data Science: Tutorial 1 - DEV Community https://dev.to/davidedelpapa/rust-for-data-science-tutorial-1-4g5j
- Preface | Data Crayon https://datacrayon.com/posts/programming/rust-notebooks/preface/
- Drawing SVG Graphs with Rust [https://cetra3.github.io/blog/drawing-svg-graphs-rust/](Drawing SVG Graphs with Rust https://cetra3.github.io/blog/drawing-svg-graphs-rust/)
Vector
Most things use ndarray
or std::vec
.
Also, look at nalgebra
. When the size of the matrix is known, it is valid.
See also: ndarray vs nalgebra - reddit
- dimforge/nalgebra - Linear algebra library for Rust.
- rust-ndarray/ndarray - ndarray: an N-dimensional array with array views, multidimensional slicing, and efficient operations
- AtheMathmo/rulinalg - A linear algebra library written in Rust
- arrayfire/arrayfire-rust - Rust wrapper for ArrayFire
- bluss/arrayvec - A vector with a fixed capacity. (Rust)
- vbarrielle/sprs - sparse linear algebra library for rust
- liborty/rstats - Rust Statistics and Vector Algebra Library
- PyO3/rust-numpy - PyO3-based Rust binding of NumPy C-API
Dataframe
It might want to try polars
for now. datafusion
looks good too.
- ritchie46/polars - Rust DataFrame library
- apache/arrow - In-memory columnar format, in Rust.
- apache/arrow-datafusion - Apache Arrow DataFusion and Ballista query engines
- milesgranger/black-jack - DataFrame / Series data processing in Rust
- nevi-me/rust-dataframe - A Rust DataFrame implementation, built on Apache Arrow
- kernelmachine/utah - Dataframe structure and operations in Rust
- sinhrks/brassfibre - Provides multiple-dtype columner storage, known as DataFrame in pandas/R
Image Processing
It might want to try image-rs
for now. Algorithms such as linear transformations are implemented in other libraries as well.
- image-rs/image - Encoding and decoding images in Rust
- image-rs/imageproc - Image processing operations
- rust-cv/ndarray-image - Allows conversion between ndarray's types and image's types
- rust-cv/cv - Rust CV mono-repo. Contains pure-Rust dependencies which attempt to encapsulate the capability of OpenCV, OpenMVG, and vSLAM frameworks in a cohesive set of APIs.
- twistedfall/opencv-rust - Rust bindings for OpenCV 3 & 4
- rustgd/cgmath - A linear algebra and mathematics library for computer graphics.
- atomashpolskiy/rustface - Face detection library for the Rust programming language
Natural Language Processing (preprocessing)
- google-research/deduplicate-text-datasets - This repository contains code to deduplicate language model datasets as descrbed in the paper "Deduplicating Training Data Makes Language Models Better" by Katherine Lee, Daphne Ippolito, Andrew Nystrom, Chiyuan Zhang, Douglas Eck, Chris Callison-Burch and Nicholas Carlini. This repository contains both the ExactSubstr deduplication implementation (written in Rust) along with the scripts we used in the paper to perform deduplication and inspect the results (written in Python). In an upcoming update, we will add files to reproduce the NearDup-deduplicated versions of the C4, RealNews, LM1B, and Wiki-40B-en datasets.
- pemistahl/lingua-rs -
👄 The most accurate natural language detection library in the Rust ecosystem, suitable for long and short text alike - usamec/cntk-rs - Wrapper around Microsoft CNTK library
- stickeritis/sticker - A LSTM/Transformer/dilated convolution sequence labeler
- tensordot/syntaxdot - Neural syntax annotator, supporting sequence labeling, lemmatization, and dependency parsing.
- christophertrml/rs-natural - Natural Language Processing for Rust
- bminixhofer/nnsplit - Semantic text segmentation. For sentence boundary detection, compound splitting and more.
- greyblake/whatlang-rs - Natural language detection library for Rust.
- finalfusion/finalfrontier - Context-sensitive word embeddings with subwords. In Rust.
- bminixhofer/nlprule - A fast, low-resource Natural Language Processing and Error Correction library written in Rust.
- rth/vtext - Simple NLP in Rust with Python bindings
- tamuhey/tokenizations - Robust and Fast tokenizations alignment library for Rust and Python
- vgel/treebender - A HDPSG-inspired symbolic natural language parser written in Rust
- reinfer/blingfire-rs - Rust wrapper for the BlingFire tokenization library
- CurrySoftware/rust-stemmers - Common stop words in a variety of languages
- cmccomb/rust-stop-words - Common stop words in a variety of languages
- Freyskeyd/nlp - Rust-nlp is a library to use Natural Language Processing algorithm with RUST
- Daniel-Liu-c0deb0t/uwu - fastest text uwuifier in the west
Graphical Modeling
- alibaba/GraphScope - GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba
- petgraph/petgraph - Graph data structure library for Rust.
- rs-graph/rs-graph - rs-graph is a library for graph algorithms and combinatorial optimization
- metamolecular/gamma - A graph library for Rust.
- purpleprotocol/graphlib - Simple but powerful graph library for Rust
- yamafaktory/hypergraph - Hypergraph is a data structure library to generate directed hypergraphs
Interface & Pipeline & AutoML
- modelfoxdotdev/modelfox - Modelfox is an all-in-one automated machine learning framework. https://github.com/modelfoxdotdev/modelfox
- datafuselabs/datafuse - A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, written in Rust
- mstallmo/tensorrt-rs - Rust library for running TensorRT accelerated deep learning models
- pipehappy1/tensorboard-rs - Write TensorBoard events in Rust.
- ehsanmok/tvm-rust - Rust bindings for TVM runtime
- vertexclique/orkhon - Orkhon: ML Inference Framework and Server Runtime
- xaynetwork/xaynet - Xaynet represents an agnostic Federated Machine Learning framework to build privacy-preserving AI applications
- webonnx/wonnx - A GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web
- sonos/tract - Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference
- MegEngine/MegFlow - Efficient ML solutions for long-tailed demands.
Workflow
- substantic/rain - Framework for large distributed pipelines
- timberio/vector - A high-performance, highly reliable, observability data pipeline
GPU
- Rust-GPU/Rust-CUDA - Ecosystem of libraries and tools for writing and executing extremely fast GPU code fully in Rust.
- EmbarkStudios/rust-gpu -
🐉 Making Rust a first-class language and ecosystem for GPU code🚧 - termoshtt/accel - GPGPU Framework for Rust
- kmcallister/glassful - Rust-like syntax for OpenGL Shading Language
- MaikKlein/rlsl - Rust to SPIR-V compiler
- japaric-archived/nvptx - How to: Run Rust code on your NVIDIA GPU
- msiglreith/inspirv-rust - Rust (MIR) → SPIR-V (Shader) compiler
Comprehensive (like sklearn)
All libraries support the following algorithms.
- Linear Regression
- Logistic Regression
- K-Means Clustering
- Neural Networks
- Gaussian Process Regression
- Support Vector Machines
- kGaussian Mixture Models
- Naive Bayes Classifiers
- DBSCAN
- k-Nearest Neighbor Classifiers
- Principal Component Analysis
- Decision Tree
- Support Vector Machines
- Naive Bayes
- Elastic Net
It might want to try smartcore
or linfa
for now.
- smartcorelib/smartcore - SmartCore is a comprehensive library for machine learning and numerical computing. The library provides a set of tools for linear algebra, numerical computing, optimization, and enables a generic, powerful yet still efficient approach to machine learning.
- LASSO, Ridge, Random Forest, LU, QR, SVD, EVD, and more metrics
- https://smartcorelib.org/user_guide/quick_start.html
- rust-ml/linfa - A Rust machine learning framework.
- Gaussian Mixture Model Clustering, Agglomerative Hierarchical Clustering, ICA
- https://github.com/rust-ml/linfa#current-state
- maciejkula/rustlearn - Machine learning crate for Rust
- factorization machines, k-fold cross-validation, ndcg
- https://github.com/maciejkula/rustlearn#features
- AtheMathmo/rusty-machine - Machine Learning library for Rust
- Confusion Matrix, Cross Varidation, Accuracy, F1 Score, MSE
- https://github.com/AtheMathmo/rusty-machine#machine-learning
- benjarison/eval-metrics - Evaluation metrics for machine learning
- Many evaluation functions
- blue-yonder/vikos - A machine learning library for supervised training of parametrized models
- mbillingr/openml-rust - A rust interface to http://openml.org/
Comprehensive (Statistics)
- statrs-dev/statrs - Statistical computation library for Rust
- rust-ndarray/ndarray-stats - Statistical routines for ndarray
- Axect/Peroxide - Rust numeric library with R, MATLAB & Python syntax
- Linear Algebra, Functional Programming, Automatic Differentiation, Numerical Analysis, Statistics, Special functions, Plotting, Dataframe
- tarcieri/micromath - Embedded Rust arithmetic, 2D/3D vector, and statistics library
Gradient Boosting
- mesalock-linux/gbdt-rs - MesaTEE GBDT-RS : a fast and secure GBDT library, supporting TEEs such as Intel SGX and ARM TrustZone
- davechallis/rust-xgboost - Rust bindings for XGBoost.
- vaaaaanquish/lightgbm-rs - LightGBM Rust binding
- catboost/catboost - A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks (predict only)
- Entscheider/stamm - Generic decision trees for rust
Deep Neural Network
Tensorflow bindings
and PyTorch bindings
are the most common.
tch-rs
also has torch vision, which is useful.
- tensorflow/rust - Rust language bindings for TensorFlow
- LaurentMazare/tch-rs - Rust bindings for the C++ api of PyTorch.
- VasanthakumarV/einops - Simplistic API for deep learning tensor operations
- spearow/juice - The Hacker's Machine Learning Engine
- neuronika/neuronika - Tensors and dynamic neural networks in pure Rust.
- bilal2vec/L2 - l2 is a fast, Pytorch-style Tensor+Autograd library written in Rust
- raskr/rust-autograd - Tensors and differentiable operations (like TensorFlow) in Rust
- charles-r-earp/autograph - Machine Learning Library for Rust
- patricksongzy/corgi - A neural network, and tensor dynamic automatic differentiation implementation for Rust.
- JonathanWoollett-Light/cogent - Simple neural network library for classification written in Rust.
- oliverfunk/darknet-rs - Rust bindings for darknet
- jakelee8/mxnet-rs - mxnet for Rust
- jramapuram/hal - Rust based Cross-GPU Machine Learning
- primitiv/primitiv-rust - Rust binding of primitiv
- chantera/dynet-rs - The Rust Language Bindings for DyNet
- millardjn/alumina - A deep learning library for rust
- jramapuram/hal - Rust based Cross-GPU Machine Learning
- afck/fann-rs - Rust wrapper for the Fast Artificial Neural Network library
- autumnai/leaf - Open Machine Intelligence Framework for Hackers. (GPU/CPU)
- c0dearm/mushin - Compile-time creation of neural networks
- tedsta/deeplearn-rs - Neural networks in Rust
- sakex/neat-gru-rust - neat-gru
- nerosnm/n2 - (Work-in-progress) library implementation of a feedforward, backpropagation artificial neural network
- Wuelle/deep_thought - Neural Networks in Rust
- MikhailKravets/NeuroFlow - Awesome deep learning crate
- dvigneshwer/deeprust - Machine learning crate in Rust
- millardjn/rusty_sr - Deep learning superresolution in pure rust
- coreylowman/dfdx - Strongly typed Deep Learning in Rust
Graph Model
- Synerise/cleora - Cleora AI is a general-purpose model for efficient, scalable learning of stable and inductive entity embeddings for heterogeneous relational data.
- Pardoxa/net_ensembles - Rust library for random graph ensembles
Natural Language Processing (model)
- huggingface/tokenizers - The core of tokenizers, written in Rust. Provides an implementation of today's most used tokenizers, with a focus on performance and versatility.
- guillaume-be/rust-tokenizers - Rust-tokenizer offers high-performance tokenizers for modern language models, including WordPiece, Byte-Pair Encoding (BPE) and Unigram (SentencePiece) models
- guillaume-be/rust-bert - Rust native ready-to-use NLP pipelines and transformer-based models (BERT, DistilBERT, GPT2,...)
- sno2/bertml - Use common pre-trained ML models in Deno!
- cpcdoy/rust-sbert - Rust port of sentence-transformers (https://github.com/UKPLab/sentence-transformers)
- vongaisberg/gpt3_macro - Rust macro that uses GPT3 codex to generate code at compiletime
- proycon/deepfrog - An NLP-suite powered by deep learning
- ferristseng/rust-tfidf - Library to calculate TF-IDF
- messense/fasttext-rs - fastText Rust binding
- mklf/word2vec-rs - pure rust implementation of word2vec
- DimaKudosh/word2vec - Rust interface to word2vec.
- lloydmeta/sloword2vec-rs - A naive (read: slow) implementation of Word2Vec. Uses BLAS behind the scenes for speed.
Recommendation
- PersiaML/PERSIA - High performance distributed framework for training deep learning recommendation models based on PyTorch.
- jackgerrits/vowpalwabbit-rs -
🦀 🐇 Rusty VowpalWabbit - outbrain/fwumious_wabbit - Fwumious Wabbit, fast on-line machine learning toolkit written in Rust
- hja22/rucommender - Rust implementation of user-based collaborative filtering
- maciejkula/sbr-rs - Deep recommender systems for Rust
- chrisvittal/quackin - A recommender systems framework for Rust
- snd/onmf - fast rust implementation of online nonnegative matrix factorization as laid out in the paper "detect and track latent factors with online nonnegative matrix factorization"
- rhysnewell/nymph - Non-Negative Matrix Factorization in Rust
Information Retrieval
Full Text Search
- quickwit-inc/quickwit - Quickwit is a big data search engine.
- bayard-search/bayard - A full-text search and indexing server written in Rust.
- neuml/txtai.rs - AI-powered search engine for Rust
- meilisearch/MeiliSearch - Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine
- toshi-search/Toshi - A full-text search engine in rust
- BurntSushi/fst - Represent large sets and maps compactly with finite state transducers.
- tantivy-search/tantivy - Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust
- tinysearch/tinysearch -
🔍 Tiny, full-text search engine for static websites built with Rust and Wasm - quantleaf/probly-search - A lightweight full-text search library that provides full control over the scoring calculations
- https://github.com/andylokandy/simsearch-rs - A simple and lightweight fuzzy search engine that works in memory, searching for similar strings
- jameslittle230/stork -
🔎 Impossibly fast web search, made for static sites. - elastic/elasticsearch-rs - Official Elasticsearch Rust Client
Nearest Neighbor Search
- Enet4/faiss-rs - Rust language bindings for Faiss
- rust-cv/hnsw - HNSW ANN from the paper "Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs"
- hora-search/hora -
🚀 efficient approximate nearest neighbor search algorithm collections library, which implemented with Rust🦀 . horasearch.com - InstantDomain/instant-distance - Fast approximate nearest neighbor searching in Rust, based on HNSW index
- lerouxrgd/ngt-rs - Rust wrappers for NGT approximate nearest neighbor search
- granne/granne - Graph-based Approximate Nearest Neighbor Search
- u1roh/kd-tree - k-dimensional tree in Rust. Fast, simple, and easy to use.
- qdrant/qdrant - Qdrant - vector similarity search engine with extended filtering support
- rust-cv/hwt - Hamming Weight Tree from the paper "Online Nearest Neighbor Search in Hamming Space"
- fulara/kdtree-rust - kdtree implementation for rust.
- mrhooray/kdtree-rs - K-dimensional tree in Rust for fast geospatial indexing and lookup
- kornelski/vpsearch - C library for finding nearest (most similar) element in a set
- petabi/petal-neighbors - Nearest neighbor search algorithms including a ball tree and a vantage point tree.
- ritchie46/lsh-rs - Locality Sensitive Hashing in Rust with Python bindings
- kampersanda/mih-rs - Rust implementation of multi-index hashing for neighbor searches on 64-bit codes in the Hamming space
Reinforcement Learning
- taku-y/border - Border is a reinforcement learning library in Rust.
- NivenT/REnforce - Reinforcement learning library written in Rust
- edlanglois/relearn - Reinforcement learning with Rust
- tspooner/rsrl - A fast, safe and easy to use reinforcement learning framework in Rust.
- milanboers/rurel - Flexible, reusable reinforcement learning (Q learning) implementation in Rust
- Ragnaroek/bandit - Bandit Algorithms in Rust
- MrRobb/gym-rs - OpenAI Gym bindings for Rust
Supervised Learning Model
- tomtung/omikuji - An efficient implementation of Partitioned Label Trees & its variations for extreme multi-label classification
- shadeMe/liblinear-rs - Rust language bindings for the LIBLINEAR C/C++ library.
- messense/crfsuite-rs - Rust binding to crfsuite
- ralfbiedert/ffsvm-rust - FFSVM stands for "Really Fast Support Vector Machine"
- zenoxygen/bayespam - A simple bayesian spam classifier written in Rust.
- Rui_Vieira/naive-bayesnaive-bayes - A Naive Bayes classifier written in Rust.
- Rui_Vieira/random-forests - A Rust library for Random Forests.
- sile/randomforest - A random forest implementation in Rust
- tomtung/craftml-rs - A Rust
🦀 implementation of CRAFTML, an Efficient Clustering-based Random Forest for Extreme Multi-label Learning - nkaush/naive-bayes-rs - A Rust library with homemade machine learning models to classify the MNIST dataset. Built in an attempt to get familiar with advanced Rust concepts.
Unsupervised Learning & Clustering Model
- frjnn/bhtsne - Barnes-Hut t-SNE implementation written in Rust.
- vaaaaanquish/label-propagation-rs - Label Propagation Algorithm by Rust. Label propagation (LP) is graph-based semi-supervised learning (SSL). LGC and CAMLP have been implemented.
- nmandery/extended-isolation-forest - Rust port of the extended isolation forest algorithm for anomaly detection
- avinashshenoy97/RusticSOM - Rust library for Self Organising Maps (SOM).
- diffeo/kodama - Fast hierarchical agglomerative clustering in Rust.
- kno10/rust-kmedoids - k-Medoids clustering in Rust with the FasterPAM algorithm
- petabi/petal-clustering - DBSCAN and OPTICS clustering algorithms.
- savish/dbscan - A naive DBSCAN implementation in Rust
- gu18168/DBSCANSD - Rust implementation for DBSCANSD, a trajectory clustering algorithm.
- lazear/dbscan - Dependency free implementation of DBSCAN clustering in Rust
- whizsid/kddbscan-rs - A rust library inspired by kDDBSCAN clustering algorithm
- Sauro98/appr_dbscan_rust - Program implementing the approximate version of DBSCAN introduced by Gan and Tao
- quietlychris/density_clusters - A naive density-based clustering algorithm written in Rust
- milesgranger/gap_statistic - Dynamically get the suggested clusters in the data for unsupervised learning.
- genbattle/rkm - Generic k-means implementation written in Rust
- selforgmap/som-rust - Self Organizing Map (SOM) is a type of Artificial Neural Network (ANN) that is trained using an unsupervised, competitive learning to produce a low dimensional, discretized representation (feature map) of higher dimensional data.
Statistical Model
- Redpoll/changepoint - Includes the following change point detection algorithms: Bocpd -- Online Bayesian Change Point Detection Reference. BocpdTruncated -- Same as Bocpd but truncated the run-length distribution when those lengths are unlikely.
- krfricke/arima - ARIMA modelling for Rust
- Daingun/automatica - Automatic Control Systems Library
- rbagd/rust-linearkalman - Kalman filtering and smoothing in Rust
- sanity/pair_adjacent_violators - An implementation of the Pair Adjacent Violators algorithm for isotonic regression in Rust
Evolutionary Algorithm
- martinus/differential-evolution-rs - Generic Differential Evolution for Rust
- innoave/genevo - Execute genetic algorithm (GA) simulations in a customizable and extensible way.
- Jeffail/spiril - Rust library for genetic algorithms
- sotrh/rust-genetic-algorithm - Example of a genetic algorithm in Rust and Python
- willi-kappler/darwin-rs - darwin-rs, evolutionary algorithms with rust
Reference
Nearby Projects
- Are we learning yet?, A work-in-progress to catalog the state of machine learning in Rust
- e-tony/best-of-ml-rust, A ranked list of awesome machine learning Rust libraries
- The Best 51 Rust Machine learning Libraries, RustRepo
- rust-unofficial/awesome-rust, A curated list of Rust code and resources
- Top 16 Rust Machine learning Projects, Open-source Rust projects categorized as Machine learning
- 39+ Best Rust Machine learning frameworks, libraries, software and resourcese, ReposHub
Blogs
Introduction
- About Rust’s Machine Learning Community, Medium, 2016/1/6, Autumn Engineering
- Rust vs Python: Technology And Business Comparison, 2021/3/4, Miłosz Kaczorowski
- I wrote one of the fastest DataFrame libraries, 2021/2/28, Ritchie Vink
- Polars: The fastest DataFrame library you've never heard of 2021/1/19, Analytics Vidhya
- Data Manipulation: Polars vs Rust, 2021/3/13, Xavier Tao
- State of Machine Learning in Rust – Ehsan's Blog, 2019/5/13, Published by Ehsan
- Ritchie Vink, Machine Learning Engineer, writes Polars, one of the fastest DataFrame libraries in Python and Rust, Xomnia, 2021/5/11
- Quickwit: A highly cost-efficient search engine in Rust, 2021/7/13, quickwit, PAUL MASUREL
- Data Manipulation: Polars vs Rust, 2021/3/13, Xavier Tao
- Check out Rust in Production, 2021/8/10, Qovery, @serokell
- Why I started Rust instead of stick to Python, 2021/9/26, Medium, Geek Culture, Marshal SHI
Tutorial
- Rust Machine Learning Book, Examples of KMeans and DBSCAN with linfa-clustering
- Artificial Intelligence and Machine Learning – Practical Rust Projects: Building Game, Physical Computing, and Machine Learning Applications – Dev Guis , 2021/5/19
- Machine learning in Rust using Linfa, LogRocket Blog, 2021/4/30, Timeular, Mario Zupan, Examples of LogisticRegression
- Machine Learning in Rust, Smartcore, Medium, The Startup, 2021/1/15, Vlad Orlov, Examples of LinerRegression, Random Forest Regressor, and K-Fold
- Machine Learning in Rust, Logistic Regression, Medium, The Startup, 2021/1/6, Vlad Orlov
- Machine Learning in Rust, Linear Regression, Medium, The Startup, 2020/12/16, Vlad Orlov
- Machine Learning in Rust, 2016/3/7, James, Examples of LogisticRegressor
- Machine Learning and Rust (Part 1): Getting Started!, Level Up Coding, 2021/1/9, Stefano Bosisio
- Machine Learning and Rust (Part 2): Linear Regression, Level Up Coding, 2021/6/15, Stefano Bosisio
- Machine Learning and Rust (Part 3): Smartcore, Dataframe, and Linear Regression, Level Up Coding, 2021/7/1, Stefano Bosisio
- Tensorflow Rust Practical Part 1, Programmer Sought, 2018
- A Machine Learning introduction to ndarray, RustFest 2019, 2019/11/12, Luca Palmieri
- Simple Linear Regression from scratch in Rust, Web Development, Software Architecture, Algorithms and more, 2018/12/13, philipp
- Interactive Rust in a REPL and Jupyter Notebook with EVCXR, Depth-First, 2020/9/21, Richard L. Apodaca
- Rust for Data Science: Tutorial 1, dev, 2021/8/25, Davide Del Papa
- petgraph_review, 2019/10/11, Timothy Hobbs
- Rust for ML. Rust, Medium, Tempus Ex, 2021/8/1, Michael Naquin
- Adventures in Drone Photogrammetry Using Rust and Machine Learning (Image Segmentation with linfa and DBSCAN), 2021/11/14, CHRISTOPHER MORAN
Apply
- Deep Learning in Rust: baby steps, Medium, 2016/2/2, Theodore DeRego
- A Rust SentencePiece implementation, Rust NLP tales, 2020/5/30
- Accelerating text generation with Rust, Rust NLP tales, 2020/11/21
- A Simple Text Summarizer written in Rust, Towards Data Science, 2020/11/24, Charles Chan, Examples of Text Sentence Vector, Cosine Distance and PageRank
- Extracting deep learning image embeddings in Rust, RecoAI, 2021/6/1, Paweł Jankiewic, Examples of ONNX
- Deep Learning in Rust with GPU, 2021/7/30, Xavier Tao
- tch-rs pretrain example - Docker for PyTorch rust bindings tch-rs. Example of pretrain model, 2021/8/15, vaaaaanquish
- Rust ANN search Example - Image search example by approximate nearest-neighbor library In Rust, 2021/8/15, vaaaaanquish
- dzamkov/deep-learning-test - Implementing deep learning in Rust using just a linear algebra library (nalgebra), 2021/8/30, dzamkov
- vaaaaanquish/rust-machine-learning-api-example - The axum example that uses resnet224 to infer images received in base64 and returns the results., 2021/9/7, vaaaaanquish
- Rust for Machine Learning: Benchmarking Performance in One-shot - A Rust implementation of Siamese Neural Networks for One-shot Image Recognition for benchmarking performance and results, UofT Machine Intelligence Student Team
- Why Wallaroo Moved From Pony To Rust, 2021/8/19, Wallaroo.ai
- epwalsh/rust-dl-webserver - Example of serving deep learning models in Rust with batched prediction, 2021/11/16, epwalsh
Case study
- Production users - Rust Programming Language, by rust-lang.org
- Taking ML to production with Rust: a 25x speedup, A LEARNING JOURNAL, 2019/12/1, @algo_luca
- 9 Companies That Use Rust in Production, serokell, 2020/11/18, Gints Dreimanis
- Masked Language Model on Wasm, BERT on flontend examples, optim-corp/masked-lm-wasm, 2021/8/27, Optim
- Serving TensorFlow with Actix-Web, kykosic/actix-tensorflow-example
- Serving PyTorch with Actix-Web, kykosic/actix-pytorch-example
Discussion
- Natural Language Processing in Rust : rust, 2016/12/6
- Future prospect of Machine Learning in Rust Programming Language : MachineLearning, 2017/11/11
- Interest for NLP in Rust? - The Rust Programming Language Forum, 2018/1/19
- Is Rust good for deep learning and artificial intelligence? - The Rust Programming Language Forum, 2018/11/18
- ndarray vs nalgebra : rust, 2019/5/28
- Taking ML to production with Rust | Hacker News, 2019/12/2
- Who is using Rust for Machine learning in production/research? : rust, 2020/4/5
- Deep Learning in Rust, 2020/8/26
- SmartCore, fast and comprehensive machine learning library for Rust! : rust, 2020/9/29
- Deep Learning in Rust with GPU on ONNX, 2021/7/31
- Rust vs. C++ the main differences between these popular programming languages, 2021/8/25
- I wanted to share my experience of Rust as a deep learning researcher, 2021/9/2
- How far along is the ML ecosystem with Rust?, 2021/9/15
Books
- Practical Machine Learning with Rust: Creating Intelligent Applications in Rust (English Edition), 2019/12/10, Joydeep Bhattacharjee
- Write machine learning algorithms in Rust
- Use Rust libraries for different tasks in machine learning
- Create concise Rust packages for your machine learning applications
- Implement NLP and computer vision in Rust
- Deploy your code in the cloud and on bare metal servers
- source code: Apress/practical-machine-learning-w-rust
- DATA ANALYSIS WITH RUST NOTEBOOKS, 2021/9/3, Shahin Rostami
- Plotting with Plotters and Plotly
- Operations with ndarray
- Descriptive Statistics
- Interactive Diagram
- Visualisation of Co-occurring Types
- download source code and dataset
- full text
Movie
- The /r/playrust Classifier: Real World Rust Data Science, RustConf 2016, 2016/10/05, Suchin Gururangan & Colin O'Brien
- Building AI Units in Rust, FOSSASIA 2018, 2018/3/25, Vigneshwer Dhinakaran
- Python vs Rust for Simulation, EuroPython 2019, 2019/7/10, Alisa Dammer
- Machine Learning is changing - is Rust the right tool for the job?, RustLab 2019, 2019/10/31, Luca Palmieri
- Using TensorFlow in Embedded Rust, 2020/09/29, Ferrous Systems GmbH, Richard Meadows
- Writing the Fastest GBDT Library in Rust, 2021/09/16, RustConf 2021, Isabella Tromba
PodCast
- DATA SCIENCE AT HOME
- Rust and machine learning #1 (Ep. 107)
- Rust and machine learning #2 with Luca Palmieri (Ep. 108)
- Rust and machine learning #3 with Alec Mocatta (Ep. 109)
- Rust and machine learning #4: practical tools (Ep. 110)
- Machine Learning in Rust: Amadeus with Alec Mocatta (Ep. 127)
- Rust and deep learning with Daniel McKenna (Ep. 135)
- Is Rust flexible enough for a flexible data model? (Ep. 137)
- Pandas vs Rust (Ep. 144)
- Apache Arrow, Ballista and Big Data in Rust with Andy Grove (Ep. 145)
- Polars: the fastest dataframe crate in Rust (Ep. 146)
- Apache Arrow, Ballista and Big Data in Rust with Andy Grove RB (Ep. 160)
Paper
- End-to-end NLP Pipelines in Rust, Proceedings of Second Workshop for NLP Open Source Software (NLP-OSS), pages 20–25 Virtual Conference, 2020/11/19, Guillaume Becquin
How to contribute
Please just update the README.md.
If you update this README.md, CI will be executed automatically. And the website will also be updated.
Thanks
Thanks for all the projects.
https://github.com/vaaaaanquish/Awesome-Rust-MachineLearning