# rustls/rustls

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rustls-rustls).**

7,470 stars · 845 forks · Rust · NOASSERTION

## Links

- GitHub: https://github.com/rustls/rustls
- awesome-repositories: https://awesome-repositories.com/repository/rustls-rustls.md

## Topics

`cryptography` `rust` `ssl` `tls`

## Description

rustls is a memory-safe implementation of the Transport Layer Security protocol written in Rust. It provides a cryptographic stack for secure network communication, supporting both TLS 1.3 and 1.2 standards for client and server implementations.

The project is designed as a modular cryptographic library that allows swapping underlying cryptographic backends and primitive providers to meet specific security or performance requirements. It incorporates a post-quantum cryptography stack, utilizing hybrid key exchanges and signatures to protect data against future quantum computing threats.

The library includes capabilities for secure connection management, client authentication via digital certificates or raw public keys, and OS-delegated trust verification. It further implements latency optimizations such as zero round-trip time handshakes, certificate compression, and early data transmission.

Quality is maintained through protocol compliance validation, fuzz testing, and performance benchmarking.

## Tags

### Security & Cryptography

- [Secure Connection Managers](https://awesome-repositories.com/f/security-cryptography/secure-connection-managers.md) — Provides a memory-safe cryptographic stack for establishing encrypted and authenticated TLS connections between clients and servers. ([source](https://github.com/rustls/rustls/blob/main/Cargo.toml))
- [Secure Network Communication](https://awesome-repositories.com/f/security-cryptography/secure-network-communication.md) — Provides a complete implementation for encrypting and authenticating network traffic using the TLS protocol.
- [Client Certificate Authentication](https://awesome-repositories.com/f/security-cryptography/client-certificate-authentication.md) — Verifies the identity of connecting clients by checking digital certificates and validating them against revocation lists. ([source](https://github.com/rustls/rustls/blob/main/examples))
- [Cryptographic Backends](https://awesome-repositories.com/f/security-cryptography/cryptographic-backends.md) — Provides an abstraction layer to swap underlying cryptographic libraries like ring or OpenSSL.
- [Handshake State Machines](https://awesome-repositories.com/f/security-cryptography/governance-policy-frameworks/security-infrastructure/tls-handshake-orchestrators/handshake-state-machines.md) — Uses a formal state machine to manage the transitions between various TLS handshake phases.
- [Modular Cryptographic Providers](https://awesome-repositories.com/f/security-cryptography/modular-cryptographic-providers.md) — Provides a modular architecture for loading external security libraries to extend cryptographic functionality.
- [Post-Quantum Cryptographic Operations](https://awesome-repositories.com/f/security-cryptography/post-quantum-cryptographic-operations.md) — Implements experimental quantum-resistant signature algorithms to ensure data security against future computing threats. ([source](https://github.com/rustls/rustls/tree/main/rustls-post-quantum))
- [Post-Quantum Key Exchange](https://awesome-repositories.com/f/security-cryptography/post-quantum-key-exchange.md) — Protects sessions against future quantum decryption using hybrid cryptographic key exchange algorithms. ([source](https://github.com/rustls/rustls/blob/main/ROADMAP.md))
- [Memory-Safe Protocol Implementations](https://awesome-repositories.com/f/security-cryptography/safe-memory-manipulation/memory-safe-protocol-implementations.md) — Offers a memory-safe alternative to C-based SSL libraries to eliminate common memory-related vulnerabilities.
- [System Trust Stores](https://awesome-repositories.com/f/security-cryptography/system-trust-stores.md) — Delegates certificate validation to native operating system platform verifiers to respect system-specific trust restrictions. ([source](https://github.com/rustls/rustls/blob/main/ROADMAP.md))
- [Encrypted Client Hello](https://awesome-repositories.com/f/security-cryptography/encrypted-client-hello.md) — Protects data sent during the initial handshake to prevent passive network observers from seeing client information. ([source](https://github.com/rustls/rustls/blob/main/ROADMAP.md))
- [Zero-RTT Handshakes](https://awesome-repositories.com/f/security-cryptography/handshake-protocols/zero-rtt-handshake-resumption/zero-rtt-handshakes.md) — Minimizes connection latency by sending and receiving encrypted application data during the first handshake. ([source](https://github.com/rustls/rustls/blob/main/examples))
- [Post-Quantum Cryptography](https://awesome-repositories.com/f/security-cryptography/post-quantum-cryptography.md) — Implements hybrid key exchanges and signatures to transition network security toward quantum-resistance.
- [Public Key Authentication](https://awesome-repositories.com/f/security-cryptography/public-key-authentication.md) — Verifies identity using raw public keys instead of full certificates to establish secure network connections. ([source](https://github.com/rustls/rustls/tree/main/examples))

### Networking & Communication

- [TLS Clients](https://awesome-repositories.com/f/networking-communication/tls-clients.md) — Provides a full TLS client implementation for establishing secure connections and verifying server certificates.
- [TLS Servers](https://awesome-repositories.com/f/networking-communication/tls-servers.md) — Implements a TLS server capable of managing secure handshakes and enforcing client authentication.
- [Early Data Transmitters](https://awesome-repositories.com/f/networking-communication/low-latency-data-transmission/early-data-transmitters.md) — Implements 0-RTT data transmission to allow application data to be sent before the handshake fully completes. ([source](https://github.com/rustls/rustls/blob/main/ROADMAP.md))

### Programming Languages & Runtimes

- [Cryptographic Abstractions](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/language-extensions/trait-implementations/cryptographic-abstractions.md) — Employs Rust traits to decouple high-level protocol logic from specific cryptographic primitive implementations.
- [TLS Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/tls-implementations.md) — Implements the Transport Layer Security protocol specifically using the Rust programming language.
- [TLS 1.3 Protocol Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/tls-implementations/tls-1-3-protocol-implementations.md) — Implements the TLS 1.3 and 1.2 standards for secure handshakes and encrypted data streams.

### Development Tools & Productivity

- [Performance Benchmarks](https://awesome-repositories.com/f/development-tools-productivity/performance-optimization-tools/performance-benchmarks.md) — Measures CPU instructions and execution time during handshakes and data transfers to detect performance regressions. ([source](https://github.com/rustls/rustls/tree/main/ci-bench))

### Software Engineering & Architecture

- [Zero-Copy Buffers](https://awesome-repositories.com/f/software-engineering-architecture/zero-copy-buffers.md) — Implements memory management strategies that process encrypted packets without intermediate copying to reduce overhead.

### Testing & Quality Assurance

- [Fuzz Testing](https://awesome-repositories.com/f/testing-quality-assurance/fuzz-testing.md) — Uses randomized input tests via external harnesses to discover edge cases and hidden vulnerabilities. ([source](https://github.com/rustls/rustls/tree/main/fuzz))
- [Protocol Compliance Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/api-protocol-testing/protocol-compliance-testing.md) — Runs integration tests against different cryptographic backends to ensure protocol compliance and functional correctness. ([source](https://github.com/rustls/rustls/tree/main/rustls-provider-test))
- [Protocol Fuzzing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/api-protocol-testing/protocol-fuzzing.md) — Executes randomized input tests through external harnesses to discover edge cases and security vulnerabilities.
