**gobee** 是一款允许开发者使用 Go 语言的严格子集(而非 C 语言)编写 eBPF 程序的工具。通过将 Go 代码转译为 BPF C 代码并利用 Clang 成熟的后端,它在提供高性能、类型安全开发体验的同时,保留了 CO-RE、BTF 和完整的验证器集成等 BPF 核心特性。 主要功能包括: * **类型化绑定:** 自动生成 Go 绑定,允许用户态代码使用原生的 Go 结构体与 BPF 映射和程序交互,消除了基于字符串的查找方式。 * **增强的开发体验:** 将验证器错误直接映射回原始 Go 源代码的具体行数,并在加载前校验内核版本要求。 * **工具链协同:** 补充了现有的 `cilium/ebpf` 工作流程。它作为一个转译器,生成可读的 C 代码,随后由 Clang 编译生成标准的 `.o` 制品。 * **广泛覆盖:** 支持所有主流 BPF 程序类型(XDP、tracepoints、kprobes 等)、19 种映射类型,并为 libbpf 辅助函数提供了约 200 个类型化的 Go 存根。 gobee 专为希望将内核态与用户态逻辑保留在单个 Go 模块中的项目而设计,为传统的基于 C 语言的 BPF 开发提供了一种现代且符合人体工程学的替代方案。