2个版本

使用旧的Rust 2015

0.1.1 2016年9月23日
0.1.0 2016年8月17日

#41 in #jit-compiler

BSD-3-Clause

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