Awesome Rust Cryptography

Showcase of notable cryptography libraries developed in Rust

View on GitHub

Short URL for this page:

Below is a list of actively maintained, high-quality cryptography libraries independently developed by members of the Rust Community.

The list is compiled and curated by the Rust Cryptography Interest Group (RCIG). If you have any suggestions, questions, or other concerns with this list, please open an issue and we’ll get back to you.

The following badges are used to provide more information about libraries that meet certain criteria:

Badge Description
crate has at least one security audit (click to view)
crate has been formally verified

Note: libraries in each section are listed in alphabetical order, not order of preference.

Table of Contents

High-level Libraries


These libraries function at a very high level and are designed for simplicity and ease-of-use. They provide integrated key management in addition to providing high-level APIs for algorithms.

Transport Encryption Libraries


These libraries implement protocols that are designed to protect data-in-transit; i.e., network communications.

Collections of Cryptographic Primitives


These libraries provide omnibus collections of different cryptographic primitives contained within a single library.

Traits for Cryptographic Primitives


The crates in this section provide trait-based abstractions for different types of cryptographic primitives, allowing implementations of higher-level cryptographic algorithms and protocols which are generic over specific primitives and implementations.

Symmetric Cryptography


These crates implement individual symmetric cryptography algorithms.

Authenticated Encryption with Associated Data (AEAD) Algorithms

These are high-level symmetric encryption libraries which ensure both the confidentiality and integrity of data.

Ciphers (low-level block ciphers and stream ciphers)

Note: most users should use higher-level AEAD encryption algorithms enumerated above. Crates in this section are low-level “unauthenticated” ciphers which should be wrapped up in a higher-level construction prior to use.

Hash Functions and Friends

Password Hashing Functions

Asymmetric Cryptography


These crates implement individual asymmetric (a.k.a. public key) cryptography algorithms.

Asymmetric Primitives

Digital Signatures

Encryption (Hybrid Encryption)

Key Exchange

Threshold & Multiparty Signatures

Verifiable Delay Functions (VDFs)

Verifiable Random Functions (VRFs)

Platform / Framework Bindings


These libraries are FFI bindings to OS platforms and commonly used cryptography frameworks.

Cryptographic Hardware


These libraries provide host-side drivers for cryptographic hardware devices (e.g. authentication tokens, HSMs).

Post-Quantum Cryptography


These libraries are designed to be secure against hypothetical future attacks by large quantum computers.

Random Number Generators


Zero-knowledge Proofs


Secure Multiparty Computation


These libraries allow several participants to collectively perform a computation without revealing what is being computed to the participants.

Fully Homomorphic Encryption


These libraries allow to perform secure computation, e.g. computations over encrypted data.

Format Decoders/Encoders


These libraries implement parsers and serializers for various cryptography-related formats.

Defensive Measures


These libraries can be used to harden cryptographic algorithms against attacks.

Constant-Time Code

Protecting Secrets in Memory

Zeroing Memory



These libraries implement mathematical algorithms potentially interesting for cryptography-related applications.



Other libraries which don’t fall into the categories listed above.