首页
eBPF是一种技术,允许运行用户提供的程序在Linux内核中。更多信息请参见"什么是eBPF?" 文档。
Aya是一个专注于可操作性和开发者体验的eBPF库。它不依赖于libbpf或bcc,而是完全用Rust从头构建,仅使用libc crate来执行系统调用。通过BTF支持和与musl链接,它提供了一种真正的编译一次,到处运行的解决方案,一个单一的自包含二进制文件可以部署在许多Linux发行版和内核版本上。
其提供的一些主要功能包括:
- 支持BPF类型格式(BTF),当目标内核支持时自动启用。这允许针对一个内核版本编译的eBPF程序在不同内核版本上运行,而无需重新编译。
- 支持函数调用重定位和全局数据映射,这使得eBPF程序可以进行函数调用并使用全局变量和初始化器。
- 与tokio和async-std的异步支持。
- 易于部署且构建速度快:Aya不需要内核构建或编译的头文件,甚至不需要C工具链;发布构建在几秒钟内完成。
谁在使用Aya
Deepfence使用Aya与XDP/TC作为他们的数据包过滤栈。更多信息请参见这里。
Exein在Pulsar中使用Aya,这是一种用于物联网的运行时安全可观察性工具。更多信息请参见这里。
Kubernetes特别兴趣小组(SIGs)使用Aya开发Blixt,这是一个负载均衡器,支持Gateway API项目的开发和维护。
Red Hat使用Aya开发bpfman,这是一个eBPF程序加载守护进程。
