跳转到内容

QuicX 文档

本目录是 QuicX 的文档地图——按职责把 docs/zh/ 下的所有文档分类列出,并指出每篇文档解答什么问题。它本身不教你怎么用 QuicX,使用入口请走仓库根的 README 与第 1、2 节。


最小路径:先编出 QuicX,再跑出第一个 HTTP/3 hello world。

文档解答什么问题
getting-started/build.md如何用 CMake / Bazel 集成 QuicX,add_subdirectory 与 find_package 两种接入方式
getting-started/quick_start.md如何跑出第一个 HTTP/3 hello world,应该看到什么现象

写第一个非 demo 程序时需要的三篇 API 走查。

文档解答什么问题
tutorial/http3_api_guide.mdHTTP/3 应用层 API:路由、中间件、Server Push、流式 body
tutorial/quic_api_guide.mdQUIC 传输层 API:裸流、自建 RPC 隧道
tutorial/configuration_reference.mdQuicConfig / Http3Config 各参数含义与默认值

操作手册类内容(“怎么做”)——非契约、非教程,按需查阅。

文档解答什么问题
guide/perf_testing.md性能测试与剖析工具的使用
guide/ci_local.md在本地复现 GitHub Actions CI 的同构环境
guide/interop_overview.mdquic-interop-runner 互通测试框架的工作原理
guide/interop_runbook.md互通测试运行手册:命令与场景
guide/sanitizer_hello_world_load.mdSanitizer 场景:hello_world 加压
guide/sanitizer_file_transfer.mdSanitizer 场景:file_transfer

注:sanitizer_hello_world_load.md、sanitizer_file_transfer.md、perf_testing.md 和 ci_local.md 目前仅提供中文版;英文版为占位文档,待后续翻译。

可被下游项目依赖的权威文档,更新频率低。

文档解答什么问题
reference/support_matrix.md平台、工具链、Sanitizer 支持矩阵
reference/api_stability.md公有头清单与 API 稳定性策略
reference/qlog_event_coverage.mdqlog 事件覆盖清单(已实现 / 未覆盖)

发布说明与安全策略在仓库根: ../../CHANGELOG.md · ../../SECURITY.md · ../../CONTRIBUTING.md。

带时间戳的结果快照,每轮测试后会被新版本取代——非契约。

文档范围
reports/interop_status.md与外部 QUIC 实现的最新互通测试结果
reports/performance_baseline.md性能基准线(CPU 热点、Buffer / Frame / Packet 吞吐)

注:performance_baseline.md 目前仅提供中文版;英文版为占位文档,待后续翻译。

集成或扩展 QuicX 时值得了解的内部约定。这一节不是讨论”未来要做什么”的 RFC,而是描述当前代码已有的不变量。

文档量较大,按职责分为五组。

理解一个 datagram / 一条连接 / 一次握手怎么被处理。

文档解答什么问题
design/packet_lifecycle.md一个 datagram 从 socket 入到上层 frame 的完整路径
design/connection_anatomy.mdConnection 子树(36 个 cpp)的三层结构:骨架 / 协调器 / 控制器
design/handshake_state_machine.mdTLS / 加密级别 / Key Update 的状态机
design/ownership_and_memory.mdBuffer / 连接 / 流的所有权与生命周期

涉及”为什么这么做”的算法、协议、优化取舍。

文档解答什么问题
design/loss_recovery.mdPTO / loss timer / ACK 处理(RFC 9002)
design/congestion_control.mdReno / Cubic / BBR v1/v2/v3 实现取舍与可插拔机制
design/qpack_dynamic_table.mdQPACK 动态表与编 / 解码流的多流协作

支撑主链路的底层机制,按需查阅。

文档解答什么问题
design/process_model.mdmaster + worker 进程模型、跨线程通道、为什么不用线程池
design/timer_design.md时间轮 vs treemap 双层定时器的取舍
design/pool_allocator.mdframe-level 内存池为什么需要、与现有优化互补
design/udp_io.mdGSO / sendmmsg / recvmmsg 取舍与降级路径

按 RFC 章节走查的协议细节。

文档解答什么问题
design/stream_state_machine.md流的收 / 发双状态机(RFC 9000 §3)
design/crypto_keying.mdTLS 密钥派生与 Key Update(RFC 9001 §5/§6)
design/h3_connection.mdH3 控制流 / QPACK 编 / 解码流的多流协作
design/upgrade_negotiation.mdH1→H3 协商、Alt-Svc、Upgrade 协议头交互
文档解答什么问题
design/metrics.md内置 Metrics 名录与 emit 点

注:本节文档(除 design/metrics.md 与 design/ownership_and_memory.md 外)目前仅提供中文版;英文版为占位文档,待后续翻译。

文档之外,源码本身就是最好的参考:

  • example/ 与 test/ 是”可执行文档”——example/hello_world 看接入、test/unit_test/quic/ 看协议各模块单测、test/congestion_control/ 看拥塞控制模拟器。
  • 仓库目录结构本身就是 index:src/quic/ 下每个子目录与 RFC 9000 / 9001 / 9002 的章节大致对应,按需 cd 进去即可。
  • 关键决策点(拥塞控制 / 丢包恢复 / 流控 / 握手 / QPACK)的源码已就近补 RFC §-级注释,看不懂直接查注释指向的条款。