001 / LINUX KERNEL · eBPF · RUST
Sodama
一次生产级数据面 Rust 重写的工程记录:内核边界、eBPF map 契约、可复现证据与明确的范围限制。
状态 生产验证
问题
一条生产网络数据面能否端到端用 Rust 重写,同时保持与 Go 参考实现逐字节一致的规则编译,并让性能与稳定性结论可以被复现?
实践
Sodama 是对 dae 核心数据面的独立 Rust 重写,不是 dae 官方项目。内核侧保留 7 个 TC classifier 与 1 个 sk_skb offload verdict 程序,14 张 BTF map 承载共享状态;用户态负责配置解析、规则编译、DNS、TCP/UDP 转发、协议实现与热重载。
map 布局与单写者纪律被当作架构契约,而不是实现细节。这个项目不是语言迁移演示,而是一份关于内核边界、资源治理和运维安全的工程记录。
证据
3 个月长期运行测试:RSS 常驻 68 MB,未观察到内存增长或内存跳变。一次重载回执从观测到的 19–34 秒降至 0.74 秒。数据面没有 C;268/268 单元测试与 netns/QEMU 回归通过。
这些数字对应特定版本、环境和流量组合。它们不支持“内存有界”或“永久稳定”的外推;测试硬件、内核版本、提交 SHA 与完整流量画像尚未公开记录。
8EBPF PROGRAMS14BTF MAPS268/268UNIT TESTS
AYA-EBPF / AYA / AXUM / LEPTOS → WASM / NETNS / QEMU
阅读相关笔记→ ← 返回项目列表→