Expand description
§Zenith — 全协议栈高性能网络框架
Zenith 是一个面向极端性能场景的全协议栈网络框架,集成:
- AF_XDP + eBPF:零拷贝数据面、bpf_link 原子挂载、双 Bank 热更新
- TLS 1.3:rustls 集成、证书代际管理、SNI/ALPN 路由
- HTTP/1.1 / HTTP/2 / HTTP/3:RFC 7230 / 7540 / 9114 全协议实现
- Web 框架:编译期 Trie 路由、类型化 Extractor、中间件 DAG
- Proxy / Cache / WAF / Forward:反向代理、缓存、Web 应用防火墙、L4 转发
- Runtime:三级 Supervisor、ChangeSet 热切换、RuntimeGraph 拓扑规划
§按需导入
Zenith 采用 feature-gated facade 设计,默认仅启用最小核心(api + core),
其余能力按需开启,避免拖入不必要的重依赖(如 libbpf-rs、rustls、ring)。
§最小依赖(仅类型定义)
[dependencies]
zenith = { path = "...", default-features = false, features = ["api"] }§仅 Web 框架(不拖入 AF_XDP / eBPF)
[dependencies]
zenith = { path = "...", default-features = false, features = ["web"] }§仅 HTTP 协议解析(无 Linux 数据面)
[dependencies]
zenith = { path = "...", default-features = false, features = ["http"] }§完整生产协议栈
[dependencies]
zenith = { path = "...", features = ["full-stack"] }§全部能力(含测试工具)
[dependencies]
zenith = { path = "...", features = ["full"] }§Feature 矩阵
| Feature | 启用能力 | 拉入重依赖 |
|---|---|---|
api | 公共类型定义(CanonicalRequest/Response 等) | 无 |
core | 核心基础设施(FramePool/Ledger/时间轮) | thiserror |
net | L2-L4 协议解析、TCP/UDP/QUIC 状态机 | 无(linux 默认关闭) |
linux | AF_XDP Socket、UMEM、四环操作 | libbpf-rs、libc |
ebpf | eBPF 程序加载、双 Bank 热更新 | libbpf-rs、libc、nix(经 libbpf-sys) |
tls | TLS 1.3 引擎、证书代际管理 | rustls、ring |
http1 / http2 / http3 | HTTP 协议解析器 | 依赖 net |
web | 最小 Web 框架(路由/中间件/静态文件/H1-H2-H3/TLS/WAF/缓存/代理);不含 runtime/linux/ebpf(实测不拖入 libbpf/io_uring/tokio);启用 runtime 特性自动升级为 full(AF_XDP 桥 + Supervisor + ChangeSet + WAF 卸载闭环) | serde、serde_json、rustls |
proxy | 反向代理、负载均衡、熔断器 | 无 |
cache | HTTP 缓存层 | 无 |
waf | Web 应用防火墙 | 无 |
forward | L4 转发 | 无 |
runtime | 全链路数据面运行时 | 依赖 net + linux + ebpf |
capability | 硬件/内核能力检测 | 无 |
observability | 指标、tracing、健康检查 | 无 |
testkit | 测试工具、Demo、压力测试 | 依赖 full |
http | 组合:http1 + http2 + http3 | — |
full-stack | 组合:完整生产协议栈 | — |
full | 组合:全部能力 | — |
§设计原则
- 热路径零堆分配(固定容量数组替代 String/Vec)
- 单线程本地存储、无锁访问
- 编译期路由注册、运行期零开销分发
- 所有 unsafe 封装在
zenith-linux内部,上层零 unsafe
Re-exports§
pub extern crate zenith_api;pub extern crate zenith_foundation;