-
serde
A generic serialization/deserialization framework
-
serde_json
A JSON serialization file format
-
syn
Parser for Rust source code
-
clap
efficient, and full-featured Command Line Argument Parser
-
thiserror
derive(Error)
-
rand
Random number generators and other randomness functionality
-
tokio
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications
-
log
A lightweight logging facade for Rust
-
anyhow
Flexible concrete Error type built on std::error::Error
-
regex
regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
-
quote
Quasi-quoting macro quote!(...)
-
proc-macro2
A substitute implementation of the compiler’s
proc_macro
API to decouple token-based libraries from the procedural macro use case -
base64
encodes and decodes base64 as bytes or utf8
-
itertools
Extra iterator adaptors, iterator methods, free functions, and macros
-
chrono
Date and time library for Rust
-
libc
Raw FFI bindings to platform libraries like libc
-
lazy_static
A macro for declaring lazily evaluated statics in Rust
-
once_cell
Single assignment cells and lazy values
-
reqwest
higher level HTTP client library
-
futures
streams featuring zero allocations, composability, and iterator-like interfaces
-
bitflags
A macro to generate structures which behave like bitflags
-
tracing
Application-level tracing for Rust
-
url
based on the WHATWG URL Standard
-
bytes
Types and traits for working with bytes
-
toml
A native Rust encoder and decoder of TOML-formatted files and streams. Provides implementations of the standard Serialize/Deserialize traits for TOML data to facilitate deserializing and serializing Rust structures.
-
indexmap
A hash table with consistent order and fast iteration
-
env_logger
A logging implementation for
log
which is configured via an environment variable -
tempfile
managing temporary files and directories
-
uuid
generate and parse UUIDs
-
num-traits
Numeric traits for generic mathematics
-
sha2
Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512
-
async-trait
Type erasure for async trait methods
-
hex
Encoding and decoding data into/from hexadecimal representation
-
http
A set of types for representing HTTP requests and responses
-
hashbrown
port of Google's SwissTable hash map
-
futures-util
Common utilities and extension traits for the futures-rs library
-
tracing-subscriber
implementing and composing
tracing
subscribers -
cfg-if
A macro to ergonomically define an item depending on a large number of #[cfg] parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted.
-
parking_lot
More compact and efficient implementations of the standard synchronization primitives
-
cc
A build-time dependency for Cargo build scripts to assist in invoking the native C compiler to compile native C code into a static archive to be linked into Rust code
-
rayon
work-stealing parallelism for Rust
-
hyper
A fast and correct HTTP library
-
strum
macros for working with enums and strings
-
getrandom
A small cross-platform library for retrieving random data from system source
-
tokio-util
Additional utilities for working with Tokio
-
semver
Parser and evaluator for Cargo's flavor of Semantic Versioning
-
smallvec
'Small vector' optimization: store up to a small number of items on the stack
-
criterion
Statistics-driven micro-benchmarking library
-
flate2
DEFLATE compression and decompression exposed as Read/BufRead/Write streams. Supports miniz_oxide and multiple zlib implementations. Supports zlib, gzip, and raw deflate streams.
-
paste
Macros for all your token pasting needs
-
rand_core
Core random number generator traits and tools for implementation
-
rustls
modern TLS library written in Rust
-
nom
A byte-oriented, zero-copy, parser combinators library
-
heck
case conversion library
-
glob
Support for matching file paths against Unix shell style patterns
-
nix
Rust friendly bindings to *nix APIs
-
strum_macros
macros for working with enums and strings
-
wasm-bindgen
Easy support for interacting between JS and Rust
-
ahash
A non-cryptographic hash function using AES-NI for high performance
-
byteorder
reading/writing numbers in big-endian and little-endian
-
rand_chacha
ChaCha random number generator
-
prost
A Protocol Buffers implementation for the Rust Language
-
either
The enum
Either
with variantsLeft
andRight
is a general purpose sum type with two cases -
percent-encoding
Percent encoding and decoding
-
bindgen
Automatically generates Rust FFI bindings to C and C++ libraries
-
tokio-stream
work with
Stream
andtokio
-
axum
Web framework that focuses on ergonomics and modularity
-
windows-sys
Windows
-
serde_with
Custom de/serialization functions for Rust's serde
-
bincode
A binary serialization / deserialization strategy for transforming structs into bytes and vice versa!
-
pin-project-lite
A lightweight version of pin-project written with declarative macros
-
hmac
Generic implementation of Hash-based Message Authentication Code (HMAC)
-
digest
Traits for cryptographic hash functions and message authentication codes
-
futures-core
The core traits and types in for the
futures
library -
rustls-pemfile
Basic .pem file parser for keys and certificates
-
num-bigint
Big integer implementation for Rust
-
walkdir
Recursively walk a directory
-
tower
modular and reusable components for building robust clients and servers
-
zeroize
Securely clear secrets from memory with a simple trait built on stable Rust primitives which guarantee memory is zeroed using an operation will not be 'optimized away' by the compiler…
-
ring
Safe, fast, small crypto using Rust
-
tokio-rustls
Asynchronous TLS/SSL streams for Tokio using Rustls
-
rustc-hash
A speedy, non-cryptographic hashing algorithm used by rustc
-
derive_more
Adds #[derive(x)] macros for more traits
-
dirs
tiny low-level library that provides platform-specific standard locations of directories for config, cache and other data on Linux, Windows, macOS and Redox by leveraging the mechanisms…
-
socket2
handling networking sockets with a maximal amount of configuration possible intended
-
fastrand
fast random number generator
-
memchr
extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for 1, 2 or 3 byte search and single substring search
-
toml_edit
format-preserving TOML parser
-
darling
A proc-macro library for reading attributes into structs when implementing custom derives
-
crossbeam-channel
Multi-producer multi-consumer channels for message passing
-
pretty_assertions
Overwrite
assert_eq!
andassert_ne!
with drop-in replacements, adding colorful diffs -
mime
Strongly Typed Mimes
-
unicode-width
Determine displayed width of
char
andstr
types according to Unicode Standard Annex #11 rules -
pin-project
safe and ergonomic pin-projection
-
bytemuck
mucking around with piles of bytes
-
sha1
SHA-1 hash function
-
colored
The most simple way to add colors in your terminal
-
which
equivalent of Unix command "which". Locate installed executable in cross platforms.
-
pkg-config
run the pkg-config system tool at build time in order to be used in Cargo build scripts
-
itoa
Fast integer primitive to string conversion
-
js-sys
Bindings for all JS global objects and functions in all JS environments like Node.js and browsers, built on
#[wasm_bindgen]
using thewasm-bindgen
crate -
convert_case
Convert strings into any case
-
static_assertions
Compile-time assertions to ensure that invariants are met
-
arrayvec
A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString.
-
http-body-util
Combinators and adapters for HTTP request or response bodies
-
home
Shared definitions of home directories
-
http-body
Trait representing an asynchronous, streaming, HTTP request or response body
-
humantime
A parser and formatter for std::time::{Duration, SystemTime}
-
web-sys
Bindings for all Web APIs, a procedurally generated crate from WebIDL
-
dashmap
Blazing fast concurrent HashMap for Rust
-
hyper-util
hyper utilities
-
rustc_version
querying the version of a installed rustc compiler
-
tonic
A gRPC over HTTP/2 implementation focused on high performance, interoperability, and flexibility
-
fnv
Fowler–Noll–Vo hash function
-
libloading
Bindings around the platform's dynamic library loading primitives with greatly improved memory safety
-
indoc
Indented document literals
-
serde_urlencoded
x-www-form-urlencoded
meets Serde -
strsim
Implementations of string similarity metrics. Includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.
-
image
Imaging library. Provides basic image processing and encoders/decoders for common image formats.
-
regex-syntax
A regular expression parser
-
encoding_rs
A Gecko-oriented implementation of the Encoding Standard
-
webpki-roots
Mozilla's CA root certificates for use with webpki
-
futures-channel
Channels for asynchronous communication using futures-rs
-
num-integer
Integer traits and functions
-
rustversion
Conditional compilation according to rustc compiler version
-
subtle
Pure-Rust traits and utilities for constant-time cryptographic implementations
-
unicode-segmentation
Grapheme Cluster, Word and Sentence boundaries according to Unicode Standard Annex #29 rules
-
indicatif
A progress bar and cli reporting library for Rust
-
mio
Lightweight non-blocking I/O
-
console
A terminal and console abstraction for Rust
-
tokio-tungstenite
Tokio binding for Tungstenite, the Lightweight stream-based WebSocket implementation
-
winapi
Raw FFI bindings for all of Windows API
-
crossterm
A crossplatform terminal library for manipulating terminals
-
zerocopy
makes zero-cost memory manipulation effortless. We write "unsafe" so you don't have to.
-
zstd
Binding for the zstd compression library
-
num_enum
Procedural macros to make inter-operation between primitives and enums easier
-
predicates
boolean-valued predicate functions
-
petgraph
Graph data structure library. Provides graph types and graph algorithms.
-
scopeguard
RAII scope guard that will run a given closure when it goes out of scope, even if the code between panics (assuming unwinding panic). Defines the macros
defer!
, `defer_on_unwind… -
memmap2
Cross-platform Rust API for memory-mapped file IO
-
num
A collection of numeric types and traits for Rust, including bigint, complex, rational, range iterators, generic integers, and more!
-
rustix
Safe Rust bindings to POSIX/Unix/Linux/Winsock-like syscalls
-
prost-types
Prost definitions of Protocol Buffers well known types
-
phf
Runtime support for perfect hash function data structures
-
async-stream
Asynchronous streams using async & await notation
-
slab
Pre-allocated storage for a uniform data type
-
ordered-float
Wrappers for total ordering on floats
-
wasm-bindgen-futures
Bridging the gap between Rust Futures and JavaScript Promises
-
spin
Spin-based synchronization primitives
-
tower-http
Tower middleware and utilities for HTTP clients and servers
-
crc32fast
Fast, SIMD-accelerated CRC32 (IEEE) checksum computation
-
zip
support the reading and writing of zip files
-
ryu
Fast floating point to string conversion
-
shlex
Split a string into shell words, like Python's shlex
-
tar
file reader and writer. This library does not currently handle compression, but it is abstract over all I/O readers and writers. Additionally, great lengths are taken to ensure that the entire…
-
pyo3
Bindings to Python interpreter
-
quick-xml
High performance xml reader and writer
-
backtrace
acquire a stack trace (backtrace) at runtime in a Rust program
-
prettyplease
A minimal
syn
syntax tree pretty-printer -
crossbeam-utils
concurrent programming
-
windows
Rust for Windows
-
urlencoding
doing URL percentage encoding
-
serde_bytes
Optimized handling of
&[u8]
andVec<u8>
for Serde -
tower-service
Trait representing an asynchronous, request / response based, client or server
-
generic-array
Generic types implementing functionality of arrays
-
hyper-rustls
Rustls+hyper integration for pure rust HTTPS
-
csv
Fast CSV parsing with support for serde
-
textwrap
word wrapping, indenting, and dedenting strings. Has optional support for Unicode and emojis as well as machine hyphenation.
-
native-tls
A wrapper over a platform's native TLS implementation
-
data-encoding
Efficient and customizable data-encoding functions like base64, base32, and hex
-
httparse
A tiny, safe, speedy, zero-copy HTTP/1.x parser
-
unicode-normalization
functions for normalization of Unicode strings, including Canonical and Compatible Decomposition and Recomposition, as described in Unicode Standard Annex #15
-
pest
The Elegant Parser
-
tracing-core
Core primitives for application-level tracing
-
sha3
Pure Rust implementation of SHA-3, a family of Keccak-based hash functions including the SHAKE family of eXtendable-Output Functions (XOFs), as well as the accelerated variant TurboSHAKE
-
anstyle
ANSI text styling
-
async-channel
Async multi-producer multi-consumer channel
-
proc-macro-crate
Replacement for crate (macro_rules keyword) in proc-macros
-
aes
Pure Rust implementation of the Advanced Encryption Standard (a.k.a. Rijndael)
-
tracing-log
compatibility between
tracing
and thelog
crate -
num-derive
Numeric syntax extensions
-
derivative
A set of alternative
derive
attributes for Rust -
proptest
Hypothesis-like property-based testing and shrinking
-
memoffset
offset_of functionality for Rust structs
-
cargo_metadata
structured access to the output of
cargo metadata
-
serial_test
Allows for the creation of serialised Rust tests
-
lru
cache implementation
-
pest_derive
pest's derive macro
-
form_urlencoded
Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms
-
proc-macro-error
Almost drop-in replacement to panics in proc-macros
-
prost-build
Generate Prost annotated Rust types from Protocol Buffers files
-
libm
libm in pure Rust
-
schemars
Generate JSON Schemas from Rust code
-
opentelemetry
API for Rust
-
ureq
safe HTTP client
-
assert_cmd
Test CLI Applications
-
ctrlc
Easy Ctrl-C handler for Rust projects
-
mime_guess
detection of a file's MIME type by its extension
-
futures-lite
Futures, streams, and async I/O combinators
-
ipnet
types and useful methods for working with IPv4 and IPv6 network addresses, commonly called IP prefixes. The new
IpNet
,Ipv4Net
, andIpv6Net
types build on the existingIpAddr
… -
rustls-native-certs
allows rustls to use the platform native certificate store
-
bitvec
Addresses memory by bits, for packed collections and bitfields
-
half
Half-precision floating point f16 and bf16 types for Rust implementing the IEEE 754-2008 standard binary16 and bfloat16 types
-
serde_repr
Derive Serialize and Deserialize that delegates to the underlying repr of a C-like enum
-
mockall
A powerful mock object library for Rust
-
object
A unified interface for reading and writing object file formats
-
flume
A blazingly fast multi-producer channel
-
borsh
Binary Object Representation Serializer for Hashing
-
rstest
Rust fixture based test framework. It use procedural macro to implement fixtures and table based tests.
-
termcolor
cross platform library for writing colored text to a terminal
-
clap_complete
Generate shell completion scripts for your clap::Command
-
tonic-build
Codegen module of
tonic
gRPC implementation -
pbkdf2
Generic implementation of PBKDF2
-
rustls-pki-types
Shared types for the rustls PKI ecosystem
-
ed25519-dalek
Fast and efficient ed25519 EdDSA key generations, signing, and verification in pure Rust
-
aho-corasick
Fast multiple substring searching
-
sqlx
🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
-
derive_builder
Rust macro to automatically implement the builder pattern for arbitrary structs
-
num-complex
Complex numbers implementation for Rust
-
cmake
A build dependency for running
cmake
to build a native library -
bumpalo
A fast bump allocation arena for Rust
-
async-std
Async version of the Rust standard library
-
dotenvy
A well-maintained fork of the dotenv crate
-
git2
Bindings to libgit2 for interoperating with git repositories. This library is both threadsafe and memory safe and allows both reading and writing git repositories.
-
filetime
Platform-agnostic accessors of timestamps in File metadata
-
dyn-clone
Clone trait that is object-safe
-
blake3
hash function
-
sysinfo
get system information such as processes, CPUs, disks, components and networks
-
arc-swap
Atomically swappable Arc
-
fs_extra
Expanding std::fs and std::io. Recursively copy folders with information about process and much more.
-
signal-hook
Unix signal handling
-
openssl-sys
FFI bindings to OpenSSL
-
atty
interface for querying atty
-
jsonwebtoken
Create and decode JWTs in a strongly typed way
-
async-recursion
Recursion for async functions
-
approx
Approximate floating point equality comparisons and assertions
-
assert_matches
Asserts that a value matches a pattern
-
camino
UTF-8 paths
-
rmp-serde
Serde bindings for RMP
-
siphasher
SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust
-
rsa
Pure Rust RSA implementation
-
actix-web
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust
-
tokio-native-tls
TLS/SSL streams for Tokio using native-tls giving an implementation of TLS for nonblocking I/O streams
-
tungstenite
Lightweight stream-based WebSocket implementation
-
rand_distr
Sampling from random number distributions
-
config
Layered configuration system for Rust applications
-
signature
Traits for cryptographic signature algorithms (e.g. ECDSA, Ed25519)
-
blake2
hash functions
-
winnow
A byte-oriented, zero-copy, parser combinators library
-
bstr
A string type that is not required to be valid UTF-8