microsoft/msquic
FreeCross-platform, C implementation of the IETF QUIC protocol, exposed to C, C++, C# and Rust.
About microsoft/msquic
MsQuic is a Microsoft implementation of the IETF QUIC protocol. It is cross-platform, written in C and designed to be a general purpose QUIC library. It provides a native C API, with C++ wrapper classes and interop layers for both Rust and C#. QUIC offers many benefits over traditional TLS over TCP, including all packets encrypted and handshake authenticated with TLS 1.3, parallel streams of reliable and unreliable application data, exchange of application data in the first round trip (0-RTT), improved congestion control and loss recovery, connection migration (survives client IP/port changes), stateless load balancing, and easy extensibility. MsQuic is optimized for both client and server scenarios, maximizing throughput and minimizing latency. It features asynchronous I/O, Receive Side Scaling (RSS) support, UDP send and receive coalescing, and kernel stack bypass via XDP.
Key Features
Pros & Cons
- Open-source under MIT license
- Backed and maintained by Microsoft
- Cross-platform (Windows, Linux, macOS, etc.)
- High performance with optimizations for throughput and latency
- Modern security with mandatory encryption and TLS 1.3