chromium_quiche:基于 OpenHarmony 生态的网络协议实现项目

QUICHE 库:Google 开发的 QUIC 和 HTTP/3 协议的底层实现。 核心网络功能。Chromium 使用 QUICHE 来处理所有 QUIC 和 H/3 网络请求,这是现代 Web 加速的关键。

分支8Tags0
文件最后提交记录最后更新时间
3 个月前
3 年前
3 个月前
8 个月前
9 个月前
4 年前
3 年前
4 年前
7 个月前
8 个月前
28 天前
2 个月前
8 个月前
3 年前

QUICHE

QUICHE 是 QUIC、Http 等(QUIC, Http, Etc.)的缩写。它是 Google 开发的成熟生产级实现,支持 QUIC、HTTP/2、HTTP/3 及相关协议与工具。Google 的服务器、Chromium、Envoy 以及其他项目均采用此库提供支持。目前,QUICHE 仍在积极开发和维护中。

QUICHE 有两个公开的代码仓库。由于两者会自动保持同步,嵌入方可以选择任意一个使用:

要在您的项目中嵌入 QUICHE,需要实现平台 API 并创建构建文件。请注意,QUICHE 团队已将“为所有平台 API 提供默认实现”以及“开源构建文件”列入路线图。在此期间,您可以参考 Chromium 和 Envoy 等开源嵌入方的实现来开始:

如要为 QUICHE 贡献代码,请遵循 CONTRIBUTING.md 中的说明。

QUICHE 仅支持小端序平台。

构建并运行独立的 QUICHE

QUICHE 提供可在 Linux 平台上运行的二进制文件。

请按照 说明 安装 Bazel。

sudo apt install libicu-dev clang lld
cd <directory that will be the root of your quiche implmentation>
git clone https://github.com/google/quiche.git
cd quiche
CC=clang bazel build -c opt //...
./bazel-bin/quiche/<target_name> <arguments>

有多个可构建并运行的目标。通过在任何二进制文件上使用 --helpfull 标志,可以获取完整的使用说明。

  • quic_packet_printer:根据提供的数据包,解析并打印无需解密即可访问的内容。

用法:quic_packet_printer server|client <数据包的十六进制转储>

  • crypto_message_printer:以人类可读的格式转储 QUIC 加密握手消息的内容。

用法:crypto_message_printer_bin <消息的十六进制>

  • quic_client:使用 QUIC 和 HTTP/3 连接到主机,向提供的 URL 发送请求,并显示响应。

用法:quic_client <URL>

  • quic_server:在 --port(默认 6121)上永久监听,直到通过 ctrl-c 停止。

  • masque_client:通过已识别的代理隧道传输到 URL(参见 RFC 9298)。

用法:masque_client [选项] <代理 URL> <URLs>

  • masque_server:MASQUE 隧道代理,默认端口为 9661。

用法:masque_server

  • web_transport_test_server:客户端可通过 WebTransport 连接的服务器。

  • moqt_relay:媒体覆盖 QUIC 传输的中继,发布者和订阅者可连接到该中继。

用法:moqt_relay

项目介绍

QUICHE 库:Google 开发的 QUIC 和 HTTP/3 协议的底层实现。 核心网络功能。Chromium 使用 QUICHE 来处理所有 QUIC 和 H/3 网络请求,这是现代 Web 加速的关键。

https://gitcode.com/openharmony-sig/chromium_quiche定制我的领域