Useful Crates

This list is obviously very opinionated and not complete. It's a list a useful crates I discovered while using Rust. Some better-known crates are not displayed below, because I prefer the ones listed here.

General purpose

Crate NameDescription
anyhowFlexible concrete Error type built on std::error::Error.
futuresFutures and streams featuring zero allocations, composability, and iterator-like interfaces.
itertoolsExtra iterator adaptors, iterator methods, free functions, and macros.
lazy_staticA macro for declaring lazily evaluated statics in Rust.
rayonSimple work-stealing parallelism for Rust.
serdeA generic serialization/deserialization framework.
serde_jsonA JSON serialization file format.
tokioAn event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.

Math, Physics, Geo, Bio

Crate NameDescription
bioA bioinformatics library for Rust.
geoGeospatial primitives and algorithms.
nalgebraGeneral-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices. Dimforge
numA collection of numeric types and traits (bigint, complex, rational, range iterators, generic integers...)
parry2d2 dimensional collision detection library in Rust. Dimforge
randRandom number generators and other randomness functionality.

String, Encoding, Time and Crypto

Crate NameDescription
chronoDate and time library for Rust.
cryptoResources for building cryptosystems in Rust using the RustCrypto project's ecosystem.
data-encodingData-encoding functions like base64, base32, and hex.
fluentA localization system designed to unleash the entire expressive power of natural language translations.
regexAn implementation of regular expressions for Rust.
unicode-segmentationGrapheme Cluster, Word and Sentence boundaries according to Unicode Standard Annex #29 rules.
uuidA library to generate and parse UUIDs.

Files

Crate NameDescription
dotenvyA dotenv implementation for Rust.
roxmltreeRepresent an XML as a read-only tree.
ronRusty Object Notation
tomlA native Rust encoder and decoder of TOML-formatted files and streams.

CLI

Crate NameDescription
clapCommand Line Argument Parser for Rust.
consoleA Rust console and terminal abstraction.
logA Rust library providing a lightweight logging facade.

Database

Crate NameDescription
slabPre-allocated storage for a uniform data type.
sqlxAn async SQL crate. Supports PostgreSQL, MySQL, and SQLite.

Graphics and UI

Crate NameDescription
futures-signalsZero cost FRP signals using the futures crate.
imageImaging library written in Rust. Provides basic filters and decoders for the most common image formats.
pietAn abstraction for 2D graphics.
piet-svgSVG backend for piet 2D graphics abstraction.
eguiAn easy-to-use immediate mode GUI that runs on both web and native.
bevyA refreshingly simple data-driven game engine and app framework.

Web

Crate NameDescription
async-graphqlA GraphQL server library implemented in Rust.
axumWeb framework that focuses on ergonomics and modularity.
hyperA fast and correct HTTP library.
jsonwebtokenCreate and decode JWTs in a strongly typed way.
lettreEmail client
reqwestHigher level HTTP client library.
towerTower is a library of modular and reusable components for building robust clients and servers.
tower-httpTower middleware and utilities for HTTP clients and servers.
tungsteniteAsync binding for Tungstenite, the Lightweight stream-based WebSocket implementation.

WebAssembly

Crate NameDescription
console_error_panic_hookA panic hook for wasm32-unknown-unknown that logs panics to console.error.
glooA toolkit for building fast, reliable Web applications and libraries.
js-sysBindings for all JS global objects and functions in all JS environments.
piet-webWeb canvas backend for piet 2D graphics abstraction.
wasm-bindgenEasy support for interacting between JS and Rust.
wasm-bindgen-futuresBridging the gap between Rust Futures and JavaScript Promises.
wasm-bindgen-rayonAdapter for using Rayon-based concurrency on the Web.
web-sysBindings for all Web APIs.
wee_allocThe Wasm-Enabled, Elfin Allocator.