Skip to main content

Crate zenith_stack

Crate zenith_stack 

Source
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-rsrustlsring)。

§最小依赖(仅类型定义)

[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
netL2-L4 协议解析、TCP/UDP/QUIC 状态机无(linux 默认关闭)
linuxAF_XDP Socket、UMEM、四环操作libbpf-rslibc
ebpfeBPF 程序加载、双 Bank 热更新libbpf-rslibcnix(经 libbpf-sys
tlsTLS 1.3 引擎、证书代际管理rustlsring
http1 / http2 / http3HTTP 协议解析器依赖 net
web最小 Web 框架(路由/中间件/静态文件/H1-H2-H3/TLS/WAF/缓存/代理);不含 runtime/linux/ebpf(实测不拖入 libbpf/io_uring/tokio);启用 runtime 特性自动升级为 full(AF_XDP 桥 + Supervisor + ChangeSet + WAF 卸载闭环)serdeserde_jsonrustls
proxy反向代理、负载均衡、熔断器
cacheHTTP 缓存层
wafWeb 应用防火墙
forwardL4 转发
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;

Modules§

api
Zenith 公共 API 重导出
core
Zenith 核心基础设施重导出
prelude
Prelude 模块:按启用的特性提供常用类型一键导入