Zenith 将完整网络栈拆分为 20 个 crate,从内核旁路到应用层逐层覆盖。理解分层是高效使用它的关键。
| Crate | 层级 | 核心能力 |
|---|---|---|
| zenith-api | L7 | 三协议收敛到 CanonicalRequest/Response,固定容量数组零堆分配 |
| zenith-core | L2+ | FramePool、资源账本、恒定时间比较、Huffman、varint |
| zenith-linux | L2 | AF_XDP Socket + UMEM + 四环、io_uring、splice |
| zenith-ebpf | L2 | eBPF 预编译字节码嵌入、libbpf 加载、双 Bank 热更新 |
| zenith-net | L2-L4 | 协议解析、TCP 状态机、UDP 会话表、QUIC 传输、准入引擎 |
| zenith-tls | L6 | TLS 1.3、证书代际、SNI/ALPN 路由、JA3/JA4 |
| zenith-http1 | L7 | HTTP/1.1 解析、请求走私防护、CRLF 防注入 |
| zenith-http2 | L7 | HTTP/2 帧解析、HPACK、流量控制、Rapid Reset 检测 |
| zenith-http3 | L7 | HTTP/3 帧、QPACK、SETTINGS、GOAWAY |
| zenith-web | L7 | 路由、中间件、静态文件、ProtocolServer(H1/H2/H3)、SecurityPipeline |
| zenith-proxy | L7 | 反向代理、6 负载均衡、熔断器、连接池、H3 客户端 |
| zenith-cache | L7 | 16 分片缓存、条件请求、stale-while-revalidate、租户隔离 |
| zenith-waf | L7 | 6 检测器、50ms 预算、规则 IR、自持检测器扩展 |
| zenith-forward | L4 | TcpRelay、协议转换、CIDR 白名单、背压与带宽配额 |
| zenith-fingerprint | L3-L7 | 34 采集器、256B 特征向量、决策引擎、三级阻断 |
| zenith-runtime | 运行时 | 全局 Tokio、三级 Supervisor、ChangeSet 热切换、AutoOptimizer |
| zenith-capability | 运行时 | 环境探测、PermissionSet、Profile 三级降级 |
| zenith-observability | 运行时 | 指标、tracing、审计日志、故障快照、分布式追踪 |
| zenith-testkit | 测试 | 测试工具、Demo、压力测试 |
Zenith 最核心的路径从网卡驱动层开始,逐层进入用户态处理:
网卡 → XDP hook (eBPF 内核态线速粗过滤)
↓ XDP_PASS
AF_XDP UMEM (零拷贝)
↓
Worker process_cycle (Phase 0-5)
↓
SourceAdmissionEngine (用户态细粒度规则匹配)
↓ Allow
L7 处理 (HTTP / TLS / WAF / Proxy / Cache)eBPF 负责内核态线速粗过滤(XDP_DROP / XDP_PASS),通过 bpf_redirect_map 将放行包送入 AF_XDP UMEM;用户态 SourceAdmissionEngine 再对每一包做细粒度的源 IP × 端口 × 协议匹配,最终放行进入 L7 应用处理。