2个不稳定版本
0.2.0 | 2024年1月30日 |
---|---|
0.1.0 | 2021年11月5日 |
#886 in Unix API
8KB
126 行
libbpf-async
用于在异步Rust中编写BPF程序的库,与libbpf-rs互补,是libbpf的Rust封装。
目前,它提供了针对BPF环形缓冲区的异步API。
要在项目中使用,请在您的Cargo.toml
中添加
[dependencies]
libbpf-async = "0.1"
示例
#[tokio::main]
async fn main() {
let mut builder = TracerSkelBuilder::default();
let mut skel = builder.open().unwrap().load().unwrap();
let mut rb = libbpf_async::RingBuffer::new(skel.obj.map_mut("ringbuf").unwrap());
loop {
let mut buf = [0; 128];
let n = rb.read(&mut buf).await.unwrap();
// do something useful with the buffer
}
}
一个可工作的示例代码可以在这里找到。
许可证
本作品采用BSD 2条款许可证和GNU LGPL v2.1许可证的双重许可。如果您使用此作品,可以选择其中之一。
依赖关系
~14–21MB
~323K SLoC