# Source Stolen with pride from https://github.com/chifflier/libnftables-sys and updated for libnftables1. # libnftables Rust Bindings [![License: GPL-2.0](https://img.shields.io/badge/License-GPL%202.0-yellow.svg)](./LICENSE) [![Build Status](https://travis-ci.org/chifflier/libnftables-sys.svg?branch=master)](https://travis-ci.org/chifflier/libnftables-sys) [![Crates.io Version](https://img.shields.io/crates/v/libnftables-sys.svg)](https://crates.io/crates/libnftables-sys) The `libnftables-sys` crate provides declarations and linkage for the `libnftables` C library. The `libnftables-sys` crate provides minimal abstractions over the native `libnftables` library functions. ## Dependencies In order to use the `libnftables-sys` crate, you must have the `libnftables` library installed. ## Usage Add `libnftables-sys` as a dependency in `Cargo.toml`: ```toml [dependencies] libnftables-sys = "0.1" ``` Import the `libnftables_sys` crate and use the functions as they're defined in the native `libnftables` library. You can also use the `Nftables` struct, a very thin layer on top of the native functions. ```rust extern crate libnftables_sys; use libnftables_sys::*; fn main() { let mut nft = Nftables::new(); let cmd = CStr::from_bytes_with_nul(b"list ruleset\0").unwrap(); let (rc,output,error) = nft.run_cmd(cmd.as_ptr()); } ``` See the [examples](examples/) directory for complete examples. ## License This crate has the same license as [libnftables](https://netfilter.org/projects/nftables/), which is GPL version 2 only.