# microsoft/msquic

**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/microsoft-msquic).**

4,720 stars · 674 forks · C · MIT

## Links

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

## Topics

`c` `cpp` `cross-platform` `csharp` `network-programming` `protocol` `quic` `rust` `secure`

## Description

MsQuic is a cross-platform, C-based implementation of the QUIC protocol. It provides a network library for establishing encrypted and authenticated transport links over UDP, integrating TLS to ensure all data flows between endpoints are encrypted.

The implementation utilizes a language-agnostic binding layer to support high-level languages including C#, Rust, and C++. It features connection-ID based migration to maintain active sessions when IP addresses or ports change, and employs multi-stream multiplexing to manage independent data flows within a single connection.

The library covers network transport primitives such as bidirectional stream exchange, connection listening, and unreliable datagram transmission. It also includes configurations for connection security and employs asynchronous event-driven I/O to optimize network throughput.

## Tags

### Networking & Communication

- [UDP Transport Implementations](https://awesome-repositories.com/f/networking-communication/transport-layers/udp-transport-implementations.md) — Implements the QUIC protocol as a custom reliable transport layer over UDP for low-latency data delivery.
- [C++ Networking Libraries](https://awesome-repositories.com/f/networking-communication/c-networking-libraries.md) — Acts as a low-level C networking toolkit with bindings for C++, C#, and Rust.
- [QUIC Implementations](https://awesome-repositories.com/f/networking-communication/network-transport-protocols/quic-implementations.md) — Implements the IETF QUIC transport protocol to provide encrypted, multiplexed links over UDP.
- [Stream Multiplexing](https://awesome-repositories.com/f/networking-communication/peer-to-peer-streaming/stream-multiplexing.md) — Manages multiple independent data streams within a single connection to eliminate transport-level head-of-line blocking.
- [Connection Migrators](https://awesome-repositories.com/f/networking-communication/persistent-network-connections/connection-migrators.md) — Enables active network sessions to persist across changing IP addresses or ports using connection identifiers.
- [High-Throughput Network Engineering](https://awesome-repositories.com/f/networking-communication/high-throughput-network-engineering.md) — Optimizes data transfer rates and minimizes latency through asynchronous I/O and kernel bypass techniques.
- [Network Listeners](https://awesome-repositories.com/f/networking-communication/network-listeners.md) — Provides the ability to listen for and accept incoming network requests on specific addresses and protocols. ([source](https://microsoft.github.io/msquic/msquicdocs/docs/API.html))
- [Connection Establishment](https://awesome-repositories.com/f/networking-communication/network-transport-protocols/quic-implementations/connection-establishment.md) — Handles the initiation and finalization of encrypted transport links during the QUIC handshake phase. ([source](https://cdn.jsdelivr.net/gh/microsoft/msquic@main/README.md))
- [Data Streaming](https://awesome-repositories.com/f/networking-communication/network-transport-protocols/quic-implementations/data-streaming.md) — Supports the transmission of reliable and unreliable data across parallel streams using zero-round-trip handshakes. ([source](https://cdn.jsdelivr.net/gh/microsoft/msquic@main/README.md))
- [Unreliable Datagram Transports](https://awesome-repositories.com/f/networking-communication/transport-layers/udp-transport-implementations/unreliable-datagram-transports.md) — Allows the transmission of secure data packets that do not require retransmission, provided the capability is negotiated. ([source](https://microsoft.github.io/msquic/msquicdocs/docs/API.html))

### Operating Systems & Systems Programming

- [C Network Protocol Implementations](https://awesome-repositories.com/f/operating-systems-systems-programming/c-network-protocol-implementations.md) — Provides a high-performance implementation of the QUIC network protocol written in C for cross-platform portability.
- [Cross-Platform C Libraries](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-platform-c-libraries.md) — Provides a portable C library for low-level networking that works consistently across multiple operating systems.

### Programming Languages & Runtimes

- [TLS 1.3 Protocol Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/tls-implementations/tls-1-3-protocol-implementations.md) — Integrates a TLS 1.3 implementation directly into the connection handshake to ensure mandatory encryption for all streams.
- [Multi-Language Binding Layers](https://awesome-repositories.com/f/programming-languages-runtimes/c-language-binding-layers/multi-language-binding-layers.md) — Exposes a stable C API surface that allows integration with high-level languages including C#, Rust, and C++.

### Security & Cryptography

- [Secure Connection Handlers](https://awesome-repositories.com/f/security-cryptography/secure-connection-handlers.md) — Implements secure connection handlers that manage TLS encryption and the QUIC handshake process. ([source](https://microsoft.github.io/msquic/msquicdocs/docs/API.html))
- [TLS Traffic Encryption](https://awesome-repositories.com/f/security-cryptography/tls-traffic-encryption.md) — Integrates TLS parameters to ensure all data flows between endpoints are fully encrypted.
- [Stream Encryption and Decryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption/media-encryption/stream-encryption-and-decryption.md) — Provides secure, encrypted data streams using integrated TLS security and authenticated handshakes.

### Web Development

- [Multiplexed Stream Exchanges](https://awesome-repositories.com/f/web-development/real-time-data-streaming/bidirectional-streams/multiplexed-stream-exchanges.md) — Enables sending and receiving application information through concurrent unidirectional or bidirectional streams. ([source](https://microsoft.github.io/msquic/msquicdocs/docs/API.html))

### DevOps & Infrastructure

- [Data Throughput Optimizers](https://awesome-repositories.com/f/devops-infrastructure/data-throughput-optimizers.md) — Provides network throughput optimization through asynchronous I/O and kernel stack bypass techniques. ([source](https://cdn.jsdelivr.net/gh/microsoft/msquic@main/README.md))

### System Administration & Monitoring

- [Event-Driven I/O](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o.md) — Implements an asynchronous event-driven I/O model to handle high-concurrency network operations with minimal thread overhead.
