3 个不稳定版本

0.5.4 2024年8月15日
0.4.2 2024年5月24日
0.4.1 2024年5月3日

#6#address

Download history 204/week @ 2024-05-02 750/week @ 2024-05-09 1768/week @ 2024-05-16 1147/week @ 2024-05-23 1421/week @ 2024-05-30 1025/week @ 2024-06-06 1211/week @ 2024-06-13 1011/week @ 2024-06-20 1893/week @ 2024-06-27 1934/week @ 2024-07-04 1539/week @ 2024-07-11 1987/week @ 2024-07-18 1933/week @ 2024-07-25 2623/week @ 2024-08-01 2755/week @ 2024-08-08

9,563 每月下载量
用于 15 个crate(2个直接使用)

MIT/Apache

68KB
1.5K SLoC

用于发送和接收 UDP 数据包的统一接口,具有对 QUIC 有用的功能

这个crate公开了大多数现代系统上可用的内核UDP堆栈功能,这些功能对于高效的、符合标准的QUIC实现是必需的。截至撰写本文时,这些功能在std或主要的异步运行时中尚不可用,并且它们的利基特性和复杂性是添加它们的障碍。因此,需要一个专门的crate。

公开的功能包括

  • 批量发送和接收操作的分段卸载,减少CPU负载。
  • 报告接收到的数据包的确切目标地址,并指定发送数据包的显式源地址,允许从预期的地址发送响应,当有多个可能性时。这在IPv6绑定到通配符地址时很常见,因为RFC 8981临时地址。
  • 显式拥塞通知,这是QUIC所必需的,用于防止数据包丢失并在拥塞链路上降低延迟(如果网络路径支持)。
  • 禁用了IP层分片,这允许检测真实的物理MTU并降低QUIC数据包丢失的风险。

某些功能在某些环境中不可用。这可能是由于操作系统或驱动程序过时。某些操作系统可能根本不实现所需的功能,或者可能尚未由crate支持。当支持不可用时,功能将优雅地降级。

依赖项

~0.6–9.5MB
~76K SLoC