2个版本
使用旧的Rust 2015
0.1.1 | 2016年9月23日 |
---|---|
0.1.0 | 2016年8月17日 |
#41 in #jit-compiler
23KB
643 行
BPF JIT
BPF到amd64 JIT编译器,从FreeBSD 10版本中提取的rust实现。
示例用法
extern crate bpfjit;
extern crate pcap;
use std::mem;
fn main() {
let pcap = pcap::Capture::dead(pcap::Linktype(12 /* raw ip */)).unwrap();
let bpf_prog = pcap.compile("tcp and dst port 80").unwrap();
let insns = bpf_prog.get_instructions();
let filter = bpfjit::BpfJitFilter::compile(unsafe {
mem::transmute(insns)
}).unwrap();
let data = [1,2,3,4];
if filter.matched(&data[..]) {
// ...
}
}
依赖项
~54KB