Skip to content

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

ring

I'm not 100% sure on this one. So use with caution. - ring

Safe, fast, small crypto using Rust

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. BiTE

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

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