This category covers Rust implementations of core algorithms , such as sorting (e.g., merge sort, quicksort), searching , hashing , and more.
The following table denotes the most common crates used for each algorithm category.
Topic Rust Crates Notes
Sorting std::cmp
, itertools
↗ , rand
↗std::cmp
provides ordering traits, itertools
↗ for iterators, rand
↗ for generating test data. No single crate is the sorting crate, as std::slice::sort
is often sufficient.
Searching std::cmp
Binary search is available in the standard library.
Data Structures (General) std::collections
, im
↗ , petgraph
↗std::collections
for common structures (Vec, HashMap, etc.), im
↗ for immutable data structures, petgraph
↗ for graphs.
Graph Algorithms petgraph
↗ , pathfinding
↗petgraph
↗ is a popular graph library. pathfinding
↗ provides pathfinding algorithms.
Dynamic Programming Often implemented without external crates DP is often implemented using standard library features like vectors and iterators.
String Algorithms regex
↗ , aho-corasick
↗ , strsim
↗regex
↗ for regular expressions, aho-corasick
↗ for multiple pattern searching, strsim
↗ for string similarity.
Numerical Algorithms nalgebra
↗ , ndarray
↗ , num
↗nalgebra
↗ for linear algebra, ndarray
↗ for N-dimensional arrays, num
↗ for numeric traits.
Cryptography ring
↗ , rust-crypto
↗ , sha2
↗Several crates exist; choose carefully based on security needs and audit history.
Topic Related Links
Compression
Cryptography Cryptography Utilities, Encryption, Hashing, Password Hashing
Data Processing
Data Structures Concurrent Data Structures
Mathematics Additional Numeric Types, Complex Numbers, Linear Algebra, Statistics, Trigonometry.
Science Machine Learning, Geoscience, Neuroscience, Science Robotics, Simulation
Search Search Engines
Strings String Concat, String Encoding, String Parsing, Text Processing