# cloudflare/quiche

**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/cloudflare-quiche).**

11,563 stars · 1,014 forks · Rust · BSD-2-Clause

## Links

- GitHub: https://github.com/cloudflare/quiche
- Homepage: https://docs.quic.tech/quiche/
- awesome-repositories: https://awesome-repositories.com/repository/cloudflare-quiche.md

## Topics

`http3` `network-programming` `protocol` `quic` `rust`

## Description

This project is a memory-safe implementation of the QUIC transport protocol and HTTP/3, designed for high-throughput and efficient network communication. It provides a comprehensive toolkit for building secure, low-latency network applications by managing the full lifecycle of transport connections, including protocol negotiation, stream data exchange, and connection state management.

The library distinguishes itself through a focus on performance and protocol integrity. It utilizes a formal state machine to enforce strict adherence to transport rules and employs zero-copy buffer management to minimize CPU overhead by mapping application memory directly to network buffers. To ensure resilience, it features modular congestion control, allowing for pluggable strategies, and stateless handshake validation to verify peer addresses before allocating server resources.

The project covers a broad capability surface, including advanced traffic management, path discovery, and detailed observability tools for monitoring connection health and performance metrics. It provides granular control over security primitives, such as TLS certificate management and session resumption, while supporting specialized features like unreliable datagram delivery and multi-path routing.

The implementation is written in Rust, providing a robust foundation for developers building high-performance web servers, clients, or experimental transport layer features.

## Tags

### Networking & Communication

- [HTTP/3 Libraries](https://awesome-repositories.com/f/networking-communication/http-3-libraries.md) — Implements the QUIC transport protocol and HTTP/3 for high-performance, secure, and low-latency network communication. ([source](https://docs.quic.tech/quiche/))
- [Connection Establishment Protocols](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/connection-establishment-protocols.md) — Manages the full lifecycle of secure network connections, including handshakes and packet processing. ([source](https://docs.quic.tech/quiche/))
- [HTTP/3 Implementations](https://awesome-repositories.com/f/networking-communication/http-3-implementations.md) — Send and receive web requests and responses over a transport connection by processing headers and body data frames. ([source](https://docs.quic.tech/quiche/h3/index.html))
- [Custom Transport Protocols](https://awesome-repositories.com/f/networking-communication/custom-transport-protocols.md) — Enables development of custom networking applications requiring low-latency, secure, and multiplexed communication over the QUIC transport protocol.
- [Network Protocol Implementations](https://awesome-repositories.com/f/networking-communication/network-protocol-implementations.md) — Provides a memory-safe implementation of transport layer protocols designed for high-throughput and efficient network communication.
- [Packet Engines](https://awesome-repositories.com/f/networking-communication/packet-engines.md) — Processes incoming and outgoing network packets while managing timers for protocol events and retransmissions. ([source](https://docs.quic.tech/quiche/index.html))
- [Congestion Controllers](https://awesome-repositories.com/f/networking-communication/packet-engines/congestion-controllers.md) — Applies pluggable congestion control algorithms to manage data flow and maintain consistent network performance. ([source](https://docs.quic.tech/quiche/))
- [Zero-Copy Networking](https://awesome-repositories.com/f/networking-communication/zero-copy-networking.md) — Directly maps application memory to network buffers to eliminate intermediate data copying and reduce CPU overhead during transmission. ([source](https://docs.quic.tech/quiche/trait.BufSplit.html))
- [Bidirectional Streaming Protocols](https://awesome-repositories.com/f/networking-communication/bidirectional-streaming-protocols.md) — Supports bidirectional data exchange over streams with integrated flow control. ([source](https://docs.quic.tech/quiche/))
- [Transport Configurations](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-transport-layers/transport-configurations.md) — Provides settings and hooks for configuring transport-specific parameters during the connection handshake process. ([source](https://docs.quic.tech/quiche/constant.MAX_ACK_DELAY_EXPONENT.html))
- [HTTP Datagram Transports](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/transport-protocols/http-transports/http-datagram-transports.md) — Supports the transmission of unreliable datagrams that bypass standard stream flow control. ([source](https://docs.quic.tech/quiche/struct.Connection.html))
- [Data Streaming](https://awesome-repositories.com/f/networking-communication/data-streaming.md) — Manages stream data with support for flow control and zero-copy operations. ([source](https://docs.quic.tech/quiche/struct.Connection.html))
- [Low-Latency Data Transmission](https://awesome-repositories.com/f/networking-communication/low-latency-data-transmission.md) — Optimizes data transmission for real-time applications by managing congestion control, zero-copy buffers, and unreliable datagram delivery.
- [Path Migration Managers](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/connection-session-management/path-migration-managers.md) — Manages connection paths through validation, migration, and MTU revalidation to maintain stable connectivity. ([source](https://docs.quic.tech/quiche/struct.Connection.html))
- [Stateless Retry Handlers](https://awesome-repositories.com/f/networking-communication/packet-engines/stateless-retry-handlers.md) — Issues stateless retry packets to validate client addresses and prevent resource exhaustion. ([source](https://docs.quic.tech/quiche/fn.retry.html))
- [Connection Handshake Protocols](https://awesome-repositories.com/f/networking-communication/connection-handshake-protocols.md) — Verifies connection identifiers during the handshake to ensure secure session resumption. ([source](https://docs.quic.tech/quiche/struct.RetryConnectionIds.html))
- [Stream](https://awesome-repositories.com/f/networking-communication/messaging-channel-management/flow-controllers/stream.md) — Manages independent data streams with individual flow control windows to prevent head-of-line blocking and ensure efficient resource utilization.
- [Connection and Session Management](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/connection-session-management.md) — Manages transport-level connection parameters like timeouts and session resumption. ([source](https://docs.quic.tech/quiche/struct.Connection.html))
- [Protocol Negotiation Tools](https://awesome-repositories.com/f/networking-communication/protocol-negotiation-tools.md) — Negotiates protocol versions during the initial handshake to ensure client-server compatibility. ([source](https://docs.quic.tech/quiche/constant.PROTOCOL_VERSION.html))
- [Experimental Protocols](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/experimental-protocols.md) — Supports research and implementation of experimental transport layer features, including custom congestion algorithms and protocol-specific packet handling.
- [Custom Connection Handlers](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/connection-establishment-protocols/custom-connection-handlers.md) — Allows initialization of client connections using custom buffer generation and specific destination identifiers. ([source](https://docs.quic.tech/quiche/fn.connect_with_dcid_and_buffer_factory.html))
- [Connection Management](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/connection-session-management/connection-management.md) — Manages connection state transitions and signals errors for invalid operations. ([source](https://docs.quic.tech/quiche/enum.Error.html))
- [Congestion Control Monitors](https://awesome-repositories.com/f/networking-communication/packet-engines/congestion-controllers/congestion-control-monitors.md) — Tracks congestion window size and bandwidth estimates to provide visibility into network performance. ([source](https://docs.quic.tech/quiche/enum.StartupExitReason.html))
- [Transmission Schedulers](https://awesome-repositories.com/f/networking-communication/packet-engines/transmission-schedulers.md) — Schedules outbound packet transmission using precise timestamps to control network dispatch. ([source](https://docs.quic.tech/quiche/struct.SendInfo.html))
- [Protocol Feature Negotiators](https://awesome-repositories.com/f/networking-communication/persistent-network-connections/connection-migrators/protocol-feature-negotiators.md) — Configures protocol-level capabilities such as datagram support and path discovery. ([source](https://docs.quic.tech/quiche/struct.Config.html))
- [Protocol Version Verifiers](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/connection-establishment-protocols/protocol-version-verifiers.md) — Verifies protocol version compatibility to ensure successful connection establishment. ([source](https://docs.quic.tech/quiche/fn.version_is_supported.html))
- [Packet Validation Rules](https://awesome-repositories.com/f/networking-communication/packet-engines/packet-validation-rules.md) — Ensures incoming network packets adhere to minimum length and protocol standards. ([source](https://docs.quic.tech/quiche/constant.MIN_CLIENT_INITIAL_LEN.html))

### Business & Productivity Software

- [Connection State Managers](https://awesome-repositories.com/f/business-productivity-software/api-connection-managers/connection-state-managers.md) — Maintains protocol compliance by managing connection state and handling protocol-level errors. ([source](https://docs.quic.tech/quiche/h3/index.html))

### Security & Cryptography

- [Cryptographic Protocols](https://awesome-repositories.com/f/security-cryptography/cryptographic-protocols.md) — Embeds secure handshake and encryption logic directly into the transport layer to ensure all data is authenticated and private.
- [Secure Connection Handlers](https://awesome-repositories.com/f/security-cryptography/secure-connection-handlers.md) — Provides fine-grained control over TLS handshakes, session resumption, and path validation for secure network sessions.
- [TLS Certificate Management](https://awesome-repositories.com/f/security-cryptography/tls-certificate-management.md) — Configures local certificate chains and private keys to enable secure peer authentication. ([source](https://docs.quic.tech/quiche/struct.Config.html))
- [Connection Identifier Managers](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/device-connection-authorization/connection-management/connection-identifier-managers.md) — Manages connection identifiers to support multi-homing and secure path identification. ([source](https://docs.quic.tech/quiche/struct.Connection.html))
- [Network Connection Security](https://awesome-repositories.com/f/security-cryptography/network-connection-security.md) — Configures protocol-level security and flow control settings for network connections. ([source](https://docs.quic.tech/quiche/index.html))
- [Stateless Session Management](https://awesome-repositories.com/f/security-cryptography/stateless-session-management.md) — Enables stateless session resumption using ticket keys to maintain connection state across server instances. ([source](https://docs.quic.tech/quiche/struct.Config.html))

### Software Engineering & Architecture

- [Zero-Copy Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/zero-copy-mechanisms.md) — Implements zero-copy mechanisms to minimize CPU overhead by mapping application memory directly to network buffers. ([source](https://docs.quic.tech/quiche/))
- [Protocol](https://awesome-repositories.com/f/software-engineering-architecture/state-machines/protocol.md) — Uses a formal state machine to enforce strict adherence to transport protocol rules and manage complex connection lifecycles.
- [Network Identifiers](https://awesome-repositories.com/f/software-engineering-architecture/network-identifiers.md) — Generates unique identifiers for network sessions from raw byte sequences. ([source](https://docs.quic.tech/quiche/struct.ConnectionId.html))
- [Session Identifiers](https://awesome-repositories.com/f/software-engineering-architecture/network-identifiers/session-identifiers.md) — Manages the length and generation of unique identifiers for individual network sessions. ([source](https://docs.quic.tech/quiche/constant.MAX_CONN_ID_LEN.html))
- [Stateless Architectures](https://awesome-repositories.com/f/software-engineering-architecture/stateless-architectures.md) — Employs retry mechanisms and connection identifiers to verify peer addresses before allocating significant server resources to new sessions.
- [Error Handling](https://awesome-repositories.com/f/software-engineering-architecture/error-handling.md) — Standardizes error reporting across network operations using unified result types. ([source](https://docs.quic.tech/quiche/type.Result.html))
- [Event-Driven Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures.md) — Processes incoming and outgoing network traffic through an asynchronous event loop that manages timers and retransmission logic.

### Web Development

- [HTTP Request Managers](https://awesome-repositories.com/f/web-development/http-request-managers.md) — Provides interfaces for managing the lifecycle of web requests and responses. ([source](https://docs.quic.tech/quiche/index.html))

### Operating Systems & Systems Programming

- [Network Buffer Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/buffer-and-cache-management/network-buffer-managers.md) — Optimizes buffer handling by passing custom storage buffers directly to the network layer to eliminate intermediate copying. ([source](https://docs.quic.tech/quiche/index.html))
- [Stream Buffer Allocators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/stream-buffer-allocators.md) — Provides specialized memory allocation for stream data to enable zero-copy network transmission. ([source](https://docs.quic.tech/quiche/trait.BufFactory.html))

### System Administration & Monitoring

- [Metric and Performance Monitors](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors.md) — Collects real-time metrics on throughput, latency, and packet loss for connections. ([source](https://docs.quic.tech/quiche/struct.Stats.html))
- [Packet Integrity Validators](https://awesome-repositories.com/f/system-administration-monitoring/packet-inspection/packet-integrity-validators.md) — Validates incoming packets to ensure data integrity and protocol compliance. ([source](https://docs.quic.tech/quiche/enum.Error.html))
- [Path Performance Monitors](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/path-performance-monitors.md) — Monitors performance and state data for individual network paths. ([source](https://docs.quic.tech/quiche/struct.PathStats.html))
- [Protocol Header Parsers](https://awesome-repositories.com/f/system-administration-monitoring/packet-inspection/protocol-header-parsers.md) — Provides specialized logic for parsing QUIC packet headers to identify protocol structure. ([source](https://docs.quic.tech/quiche/struct.Header.html))

### DevOps & Infrastructure

- [Connection Termination](https://awesome-repositories.com/f/devops-infrastructure/client-connectivity-tools/connection-termination.md) — Gracefully terminates connections by signaling error codes and ensuring final protocol cleanup. ([source](https://docs.quic.tech/quiche/struct.Connection.html))

### Data & Databases

- [Protocol](https://awesome-repositories.com/f/data-databases/schema-validation-libraries/violation-reporters/protocol.md) — Surfaces errors when peers violate transport or flow control limits. ([source](https://docs.quic.tech/quiche/enum.Error.html))
