快速开始
quicz 是一个使用 Zig 实现的实验性 IETF QUIC transport。
目标是先完成可用的 QUIC v1 transport,而不是覆盖所有可选扩展。
- Zig 0.16.0(见仓库
.zigversion)
项目仍处于实验阶段,推荐先以本地 checkout 的方式把 quicz 加入应用的
build.zig.zon:
.dependencies = .{ .quicz = .{ .path = "../quicz" },},再在应用的 build.zig 中把依赖暴露给可执行模块:
const quicz_dep = b.dependency("quicz", .{ .target = target, .optimize = optimize,});exe.root_module.addImport("quicz", quicz_dep.module("quicz"));最小的连接与 frame 使用
Section titled “最小的连接与 frame 使用”const std = @import("std");const quicz = @import("quicz");
pub fn main() !void { var connection = 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 connection.deinit();
const stream_id = try connection.openStream(); try connection.sendOnStream(stream_id, "hello", true);
var frame_buffer: [1350]u8 = undefined; const frame_payload = (try connection.pollTx(0, &frame_buffer)) orelse return error.NoPendingFrame; _ = frame_payload;}构建并运行探针
Section titled “构建并运行探针”zig buildzig build test --summary allzig build run-tls13-udp-loopbackzig build run-tls13-process-interoprun-tls13-udp-loopback—— loopback UDP 上验证纯 Zig TLS 握手和 stream 路径。run-tls13-process-interop—— loopback UDP 上运行独立构建的 Zig client/server。
全部 build step 可用 zig build --help 查看。
| 需求 | 入口 |
|---|---|
| 公开连接 API | src/lib.zig |
| TLS 1.3 实现 | src/quic/tls13.zig |
| Endpoint 路由与 timer | src/quic/endpoint_lifecycle.zig |
| 可运行探针 | examples/ |
| 协议状态与验收证据 | 传输任务矩阵 |
API 仍在演进。Connection 是主要公开句柄;详细 lifecycle helper 只在架构
文档和任务矩阵中说明,不在这里枚举。
MIT。