线上验证,不只是单元测试
Section titled “线上验证,不只是单元测试”quicz 的主握手和带 FIN 的 stream echo 路径由真实 UDP 探针覆盖:进程内 loopback、 独立进程 Zig,以及独立实现、启用证书校验的 Go 与 Rust 客户端。
$ zig-out/bin/quicz-tls13-process-echo-server 127.0.0.1 4443 2 concurrent-retry &$ (cd examples/interop/go_echo_client && \ go run . -addr 127.0.0.1:4443 -ca ../testdata/quicz-echo-ca.pem -server-name localhost)# quic-go client ↔ quicz server:完成 TLS 1.3 握手,随后 stream 0 / 4 上# 分别验证带 FIN 的 "hello" / "world" echo —— 全程开启证书校验。quicz 目前已实现
Section titled “quicz 目前已实现”- 纯 Zig TLS 1.3 + 0-RTT —— 不依赖 C 密码学库;支持后量子 X25519Kyber768。
- QUIC v1 与 v2 transport —— stream、flow control、连接迁移、path validation、Retry、stateless reset、密钥更新、版本协商。
- DATAGRAM、multipath、ECN、PMTU、GSO/GRO、连接池、qlog。
- Loss recovery + NewReno / CUBIC / BBR,含报文 pacing。
- HTTP/3 + QPACK 静态表、WebTransport 基础实现。
- 线路级互通验证:quic-go、quinn、QUIC-Interop-Runner。
var conn = try quicz.Connection.init( std.heap.page_allocator, .client, .{ .initial_max_data = 65_536, .initial_max_stream_data = 65_536, .initial_max_streams_bidi = 16,});defer conn.deinit();
const id = try conn.openStream();try conn.sendOnStream(id, "hello", true);
var buf: [1350]u8 = undefined;const frame = (try conn.pollTx(0, &buf)) orelse return error.NoPendingFrame;完整步骤见快速开始。
| 对端 | 语言 / 协议栈 | 探针 |
|---|---|---|
| quic-go | Go | 启用证书校验的 echo client/server |
| quinn | Rust | 启用证书校验的 echo client |
| QUIC-Interop-Runner | — | handshake、transfer、retry 自测 |
| quicz(独立进程) | Zig | loopback UDP 上独立 client + server |
自己跑一遍:示例指南。
quicz 横向对比
Section titled “quicz 横向对比”权威功能矩阵在四个协议栈上追踪 37 项能力,覆盖率汇总如下:
| 指标 | quic-go | quiche | s2n-quic | quicz |
|---|---|---|---|---|
| 传输层(19 项) | 19/19 | 14/19 | 14/19 | 19/19 |
| 拥塞控制(4 项) | 4/4 | 4/4 | 3/4 | 4/4 |
| 密码套件(5 项) | 5/5 | 5/5 | 5/5 | 5/5 |
| 应用层(6 项) | 6/6 | 3/6 | 0/6 | 2/6 |
| 平台(3 项) | 2/3 | 0/3 | 1/3 | 1/3 |
| 合计(37 项) | 36/37 | 26/37 | 23/37 | 31/37 |
quicz 在传输层、拥塞控制与密码套件上领先,剩余差距集中在应用层广度。完整 37 行 逐项对比与差距分析见功能对比。
部分实现 / 暂未实现
Section titled “部分实现 / 暂未实现”| 状态 | 能力 |
|---|---|
| 基础实现,持续完善 | HTTP/3 连接管理(GOAWAY / SETTINGS / 流生命周期);WebTransport 会话 |
| 暂未实现 | QPACK 动态表;HTTP Datagrams (RFC 9297);流重置部分交付;FIPS 140-3;XDP 零拷贝 I/O |
权威状态与验收证据见传输任务矩阵。 API 趋于稳定但仍在演进。