Useful Crates
Algorithms
- indexmap
A hash table with consistent order and fast iteration
Async
- tokio
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications
Cargo Utils
- release-plz
Has tasks that help with automating the release process for Rust projects - ChangeLog generation - Version bumping - Git Tagging - Release PR - Crate Publishing
Cloud
- object_store
A generic object store interface for uniformly interacting with AWS S3, Google Cloud Storage, Azure Blob Storage and local files.
Crypto
Debugging
- BiTE
BiTE is a platform-agnostic executable analysis tool. It aims to offer an environment for inspecting the content of binaries and it's debug info. While it is still in early development, it supports various architectures.
Error handling
- anyhow
Flexible concrete Error type built on std::error::Error
- thiserror
Provides a convenient derive macro for the standard library's std::error::Error trait
General
- bytes
Utilities for working with bytes
- nutype
Nutype is a proc macro that allows adding extra constraints like sanitization and validation to the regular newtype pattern. The generated code makes it impossible to instantiate a value without passing the checks. It works this way even with serde deserialization.
- derive_more
A set of custom derives for common Rust traits
gRPC
- tonic
A gRPC over HTTP/2 implementation focused on high performance, interoperability, and flexibility
Logging, Profiling, Tracing
- tracing
Application-level tracing for Rust
- tracing-subscriber
Utilities for implementing and composing
tracing
subscribers
Parsing, Regex, Serialization, and Text
- prost
Protocol Buffers implementation for the Rust Language
- serde
A generic serialization/deserialization framework
- serde-json
A JSON serialization file format
- unicode-segmentation
This crate provides Grapheme Cluster, Word and Sentence boundaries according to Unicode Standard Annex #29 rules
- validator
Common validation functions (email, url, length, ...)
Syntax
- syntect
A syntax highlighting library for Rust that uses Sublime Text syntax definitions
Testing
- mockito
HTTP mocking library for Rust
- mockall
A mocking library for Rust that provides the
automock
macro to accelerate the process of mocking. - pretty_assertions
Macros for pretty assertions. Overwrite assert_eq! with a drop-in replacement, adding a colorful diff.
Web Development
- ammonia
HTML Sanitization
- askama
Type-safe, compiled Jinja-like templates for Rust
- axum
Web framework that focuses on ergonomics and modularity
- axum-extra
Extra utilities for
axum
- nanoid
A tiny, secure, URL-friendly, unique string ID generator for Rust
- reqwest
Higher level HTTP client library
- tower
Tower is a library of modular and reusable components for building robust clients and servers
- tower-http
Tower middleware and utilities for HTTP clients and servers
Utilities
- chrono
Date and time library for Rust
- data-encoding
Efficient and customizable data-encoding functions like base64, base32, and hex
- image
Imaging library. Provides basic image processing and encoders/decoders for common image formats
- rand
Random number generators and other randomness functionality