A curated list of Rust crates, libraries, tools, and resources for data science and bioinformatics.
See the awesome-rust for a more comprehensive and less focussed list of crates of interest.
Adapting awesome-semantic-web contribution mechanisms:
-
to add something to the list please either go to https://github.com/commons-research/awesome-rust-datascience/blob/main/README.md and click on the "pen" icon in the upper right corner. Make the changes to the file and follow the instructions to create a pull request. Alternatively, add a comment with a link to awesomelets. Pull requests will be evaluated shortly for inclusion while awesomelets will be evaluated at some indeterminate time in the future.
-
Looking for something but can't find it? Add it to the "Does it exist" list and we'll keep an eye out for it. If it's a good idea maybe someone will come along and create it!
- polars — Fast DataFrame library powered by Apache Arrow.
- datafusion — Query engine using Apache Arrow.
More comprehensive lists can be found in the Awesome-Rust-MachineLearning
- linfa — A Rust ML toolkit (similar to scikit-learn).
- tch-rs — PyTorch bindings for Rust.
- burn — Comprehensive deep learning framework in Rust.
- ndarray — N-dimensional array library.
- nalgebra — General-purpose linear algebra library.
- ndarray-stats — Statistical routines for
ndarray.
- plotters — Drawing library for data plotting.
- vega_lite — Rust bindings for Vega-Lite.
- charming — A Rust library for creating charts using Apache ECharts.
- rustplotlib — A pure Rust visualization library inspired by D3.js
- plotly.rs - Plotly for Rust.
- rust-bio — Bioinformatics algorithms and data structures.
- rust-htslib — Bindings to HTSlib for BAM/CRAM/VCF.
- needletail — Fast FASTA/Q parsing.
- mzcore — A Rust library for peptide centric mass spec calculations centered around ProForma and complex theoretical fragmentation
- mzdata — A Rust library for reading mass spectrometry data file formats.
- mzpeaks — Types and traits for generic representation of peaks and features for mass spectrometry, including searchable collections and spatial data structures.
- mzsignal — Algorithms for low-level signal processing of mass spectra and temporal traces like chromatograms or mobilograms, including peak picking, feature extraction, signal averaging, smoothing and denoising.
- mzdeisotope — Algorithms for charge state deconvolution and deisotoping of mass spectra and feature maps.
- mass-fragment-index — Data structures for large-scale searching of precursor-product collections suitable for fragment indices, spectral libraries, or similar data. Includes fast-to-search on-disk serialization.
- Rust for Data Science — Examples from
linfa. - Polars User Guide — Official Polars documentation.
- Programming Rust — O’Reilly book.
- Rust for Data Science Book (draft) — Early-stage open book.
Contributions are welcome! Please read the contribution guidelines first.