Zenith 采用 Cargo feature 门控,默认仅启用最小核心。本页列出全部 feature 及其依赖,帮助你精准选型。
| Feature | 启用能力 | 重依赖 |
|---|---|---|
| api | 公共类型定义(CanonicalRequest/Response 等) | 无 |
| core | FramePool、账本、ct_compare、时间轮 | thiserror |
| net | L2-L4 协议解析、TCP/UDP/QUIC 状态机、准入引擎、Worker | core |
| linux | AF_XDP、UMEM、四环、io_uring、splice | libc |
| ebpf | eBPF 加载、双 Bank 热更新 | libbpf-rs, libc |
| tls | TLS 1.3、证书代际、JA3/JA4 指纹 | rustls, ring |
| http1/2/3 | HTTP 协议解析器 | net |
| web | Web 框架(路由/中间件/静态文件/安全管道) | serde, serde_json, rustc-hash, ring |
| proxy | 反向代理、6 负载均衡、熔断器、连接池 | rustls, quinn-proto, bytes |
| cache | HTTP 缓存层(16 分片、条件请求) | 无 |
| waf | Web 应用防火墙(6 检测器、50ms 预算) | 无 |
| fingerprint | 全链路指纹识别与阻断(L3-L7) | 独立运行 |
| forward | L4 转发(TcpRelay、CIDR 白名单、协议转换) | linux(启用 splice) |
| runtime | 全链路数据面运行时(Supervisor、ChangeSet、AutoOptimizer) | net+linux+ebpf,升级 web 到 full |
| capability | 环境探测、能力安全、Profile 三级降级 | 无 |
| observability | 指标、tracing、审计日志、故障快照 | 无 |
| audit | cargo-audit(netlink 链路) | audit(仅 Linux) |
| testkit | 测试工具、Demo、压力测试 | full |
| 组合 Feature | 内容 |
|---|---|
| http | http1 + http2 + http3 |
| full-stack | api + web + http + tls + proxy + cache + waf + forward + runtime + capability + observability |
| full | full-stack + testkit |
Zenith 默认仅启用最小核心(api + core),其余能力按需开启,避免拖入不必要的重依赖(如 libbpf-rs、rustls、ring)。
[dependencies]
zenith = { path = "...", default-features = false, features = ["web"] }[dependencies]
zenith = { path = "...", default-features = false, features = ["http"] }[dependencies]
zenith = { path = "...", features = ["full-stack"] }除使用 facade 外,也可直接引用单个子 crate,适合只需求某一独立能力的场景。子 crate 的 default 特性均为空,仅包含必需依赖。
[dependencies]
# 只依赖 Web 框架
zenith-web = { path = ".../zenith/crates/zenith-web" }
# 只依赖 L4 转发
zenith-forward = { path = ".../zenith/crates/zenith-forward" }
# 只依赖指纹识别
zenith-fingerprint = { path = ".../zenith/crates/zenith-fingerprint" }