nfq - NetFilter queue for Rust

nfq is Rust library for performing userspace handling of packets queued by the kernel packet packet filter chains.

License

In contrast to libnetfilter_queue which is licensed under GPL 2.0, which will require all binaries using that library to be bound by GPL, nfq is dual-licensed under MIT/Apache-2.0. nfq achieves this by communicates with kernel via NETLINK sockets directly.

Example

Here is an example which accepts all packets. ```rust use nfq::{Queue, Verdict};

fn main() -> std::io::Result<()> { let mut queue = Queue::open()?; queue.bind(0)?; loop { let mut msg = queue.recv()?; msg.set_verdict(Verdict::Accept); queue.verdict(msg)?; } Ok(()) } ```