Microsoft has taken another step into the world of open source. In a blog post, the company announced its in-house network connections management library, MsQuic, is now open source.
Built on the QUIC protocol, the MsQuic library is already used across Microsoft’s businesses. It is a C library that is designed to manage QUIC data connections in products. It is available on both Windows and Linux.
If you are not familiar with QUIC, it is a new protocol for data transfer. QUIC, or “Quick UDP Internet Connections” is currently being processed into a standard by the Internet Engineering Task Force (IETF).
Microsoft has been an early adopter of QUIC and developed its MsQuic is going to become frequently used throughout the company. Daniel Havey, Program Manager at Microsoft, says msQuic will be used in the following:
- “Windows will ship with MsQuic in the kernel to support various inbox features.
- The Windows HTTP/3 stack is being built on top of MsQuic.
- Microsoft 365 is testing a preview version of IIS using HTTP/3 to reduce tail loss latencies in the last mile.
- .NET Core has built HTTP/3 support into Kestrel and HttpClient on top of MsQuic (available in the preview for the 5.0 release of .NET Core)
- SMB in Windows is also prototyping MsQuic usage.”
Havey points out the new protocol makes networks safer and more efficient. He points to Microsoft’s commitment to QUIC and the open source community:
“Microsoft is an active participant and driver of QUIC in the industry and is consequently open sourcing our implementation as a reference for others,” Havey said in a blog post published yesterday.
“MsQuic brings performance and security improvements to many important networking scenarios. Our online services benefit the most from performance improvements like reduced tail latency and faster connection setup. Our connections will be able to seamlessly switch networks because they can survive IP address/port changes. This equates to better user experience on our edge devices,” Havey added.
If you want to know more about msQuic or use the protocol, you can check it out at its GitHub page here.