1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
//! # 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`)。
//!
//! ### 最小依赖(仅类型定义)
//!
//! ```toml
//! [dependencies]
//! zenith = { path = "...", default-features = false, features = ["api"] }
//! ```
//!
//! ### 仅 Web 框架(不拖入 AF_XDP / eBPF)
//!
//! ```toml
//! [dependencies]
//! zenith = { path = "...", default-features = false, features = ["web"] }
//! ```
//!
//! ### 仅 HTTP 协议解析(无 Linux 数据面)
//!
//! ```toml
//! [dependencies]
//! zenith = { path = "...", default-features = false, features = ["http"] }
//! ```
//!
//! ### 完整生产协议栈
//!
//! ```toml
//! [dependencies]
//! zenith = { path = "...", features = ["full-stack"] }
//! ```
//!
//! ### 全部能力(含测试工具)
//!
//! ```toml
//! [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
// ─────────────────────────────────────────────────────────────────────────────
// 公共 API 类型(默认启用)
// ─────────────────────────────────────────────────────────────────────────────
/// Zenith 公共 API 与类型定义
pub extern crate zenith_api;
/// Zenith 公共 API 重导出
///
/// 通过 `zenith_stack::api` 可访问所有公共类型,等价于直接使用 `zenith_api` crate。
// ─────────────────────────────────────────────────────────────────────────────
// 核心基础设施(默认启用)
// ─────────────────────────────────────────────────────────────────────────────
/// Zenith 核心基础设施
pub extern crate zenith_foundation;
/// Zenith 核心基础设施重导出
// ─────────────────────────────────────────────────────────────────────────────
// 网络协议层(按需启用)
// ─────────────────────────────────────────────────────────────────────────────
/// Zenith 网络地址与传输层抽象
pub extern crate zenith_net;
/// Zenith 网络层重导出
/// Zenith Linux 平台抽象层(AF_XDP / UMEM / Ring)
pub extern crate zenith_linux;
/// Zenith Linux 平台重导出
/// Zenith eBPF 程序管理
pub extern crate zenith_ebpf;
/// Zenith eBPF 重导出
/// Zenith TLS 1.3 安全引擎
pub extern crate zenith_tls;
/// Zenith TLS 重导出
// ─────────────────────────────────────────────────────────────────────────────
// HTTP 协议层(按需启用)
// ─────────────────────────────────────────────────────────────────────────────
/// Zenith HTTP/1.1 协议解析器
pub extern crate zenith_http1;
/// Zenith HTTP/1.1 重导出
/// Zenith HTTP/2 协议实现
pub extern crate zenith_http2;
/// Zenith HTTP/2 重导出
/// Zenith HTTP/3 协议实现
pub extern crate zenith_http3;
/// Zenith HTTP/3 重导出
// ─────────────────────────────────────────────────────────────────────────────
// 应用层(按需启用)
// ─────────────────────────────────────────────────────────────────────────────
/// Zenith Web 应用框架
pub extern crate zenith_web;
/// Zenith Web 框架重导出
/// Zenith 反向代理
pub extern crate zenith_proxy;
/// Zenith 代理重导出
/// Zenith HTTP 缓存层
pub extern crate zenith_cache;
/// Zenith 缓存重导出
/// Zenith Web 应用防火墙
pub extern crate zenith_waf;
/// Zenith WAF 重导出
/// Zenith L4 转发层
pub extern crate zenith_forward;
/// Zenith 转发重导出
// ─────────────────────────────────────────────────────────────────────────────
// 运行时与治理(按需启用)
// ─────────────────────────────────────────────────────────────────────────────
/// Zenith 全链路数据面运行时
pub extern crate zenith_runtime;
/// Zenith 运行时重导出
/// Zenith 能力检测
pub extern crate zenith_capability;
/// Zenith 能力检测重导出
/// Zenith 可观测性
pub extern crate zenith_observability;
/// Zenith 可观测性重导出
/// Zenith 测试工具箱
pub extern crate zenith_testkit;
/// Zenith 测试工具重导出
/// Zenith 全链路指纹识别与阻断
pub extern crate zenith_fingerprint;
/// Zenith 指纹识别重导出
// ─────────────────────────────────────────────────────────────────────────────
// 全局便捷 API(启用 runtime feature 时可用)
// ─────────────────────────────────────────────────────────────────────────────
/// 全局 Tokio 异步运行时便捷函数(feature = `runtime`)
///
/// 消除跨 crate 传递 `Handle` / 每个二进制重复写 `Builder::new_multi_thread()` 的样板代码。
/// 所有函数 Fail-Closed:未初始化时自动按 `RuntimeConfig::auto()` 懒加载。
///
/// # 示例
/// ```ignore
/// use zenith_stack::{spawn, block_on};
///
/// // 无需显式构建 Runtime,任何位置都能直接 spawn
/// let task = spawn(async { 42 });
/// let result = block_on(task);
/// assert_eq!(result, Ok(42));
/// ```
// ─────────────────────────────────────────────────────────────────────────────
// Prelude:常用类型一键导入
// ─────────────────────────────────────────────────────────────────────────────
/// Prelude 模块:按启用的特性提供常用类型一键导入
///
/// # 用法
///
/// ```no_run
/// use zenith_stack::prelude::*;
/// ```