7个版本

2.1.3-beta2022年10月5日
2.1.1-beta2022年9月7日
2.0.2-beta2022年4月4日
2.0.1-beta22022年3月18日
1.6.0-alpha6 2021年7月27日

67#quic

每月44 次下载

MIT 许可证

18MB
484K SLoC

C 314K SLoC // 0.1% comments Perl 150K SLoC // 0.1% comments C++ 7.5K SLoC // 0.1% comments GNU Style Assembly 6K SLoC // 0.1% comments Bitbake 2.5K SLoC // 0.1% comments Rust 1.5K SLoC // 0.0% comments M4 1.5K SLoC // 0.0% comments Visual Studio Project 677 SLoC Prolog 643 SLoC Assembly 311 SLoC // 0.1% comments C# 108 SLoC // 0.1% comments Shell 35 SLoC // 0.3% comments NuGet Config 7 SLoC

MsQuic logo

Perf Dashboard Test Status Code Coverage CodeQL Language grade: C/C++ CII Best Practices Discord crates.io nuget

MsQuic是微软对IETF QUIC协议的实现。它是一个跨平台库,用C编写,旨在成为一个通用的QUIC库。MsQuic还提供了C++ API包装类,并公开了Rust和C#的互操作层。

协议功能

与现有的“TLS over TCP”场景相比,QUIC有许多优势

  • 所有数据包都进行了加密,握手通过TLS 1.3进行认证。
  • 并行流的应用数据(可靠和不可靠)。
  • 在第一个往返(0-RTT)中交换应用数据。
  • 改进的拥塞控制和丢包恢复。
  • 在客户端IP地址或端口发生变化的情况下仍能存活。
  • 无状态负载均衡。
  • 易于扩展新功能和扩展。

库功能

MsQuic具有一些功能,使其与其他QUIC实现区分开来

  • 针对客户端和服务器进行优化。
  • 针对最大吞吐量和最小延迟进行优化。
  • 异步IO。
  • 支持接收端扩展(RSS)。
  • 支持UDP发送和接收合并。

文档

贡献

有关贡献信息,请参阅我们的贡献指南。如果您正在寻找开始的地方,可以查看我们的良好入门问题列表。如果您只想交谈,欢迎在Discord上与我们聊天。

依赖项