ITADN
moq-dev/web-transport
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

crates.io docs.rs discord

WebTransport

WebTransport 是一个新的 Web API,允许客户端与服务器之间进行低层级的双向通信。 它在浏览器中可用,作为 HTTP 和 WebSockets 的替代方案。

WebTransport 构建在 HTTP/3 之上,而 HTTP/3 又构建在 QUIC 之上。 本库隐藏了这些细节,并尝试仅暴露 QUIC API,尽可能将工作委托给底层的 QUIC 实现。

QUIC 提供两个主要 API:

Streams

QUIC 流是有序的、可靠的、流量控制的,并且可选地支持双向通信。 两端都可以创建和关闭流(包括错误码),且没有额外开销。 你可以将它们视为 TCP 连接,但它们共享在单个 QUIC 连接之上。

Datagrams

QUIC 数据报是无序的、不可靠的,且不受流量控制。 两端都可以发送小于 MTU 大小(最小约 1.2kb)的数据报,它们可能会乱序到达或完全丢失。 它们基本上是 UDP 数据包,区别在于它们经过加密并受拥塞控制。

Crates

本项目被拆分为许多不同的 crate:

语言绑定

通过 UniFFI 从 rs/web-transport-ffi 构建;所有三个发布工作流均由单个 web-transport-ffi-v* 标签触发。

语言来源
Pythonweb-transport-rs (PyPI)py/web-transport
Kotlindev.moq:web-transport (Maven Central)kt/
SwiftWebTransportFFI.xcframework.zip (附加在 GitHub Releases 中)swift/