rust-iptables

Crates.iorust-iptables
lib.rsrust-iptables
version0.0.2
sourcesrc
created_at2021-10-22 11:01:17.483619
updated_at2021-10-25 11:52:54.039806
descriptionA iptables bindings for Rust.
homepage
repository
max_upload_size
id469280
size29,274
inkhare (inkhare)

documentation

README

rust-iptables

A iptables bindings for Rust.

Overview

Rust bindings for iptables, it provides a few major components:

  • high-level handles, such as save/restore
  • table/chain/rule support
  • IPv4/IPv6 support

Example

A basic chain/table example.

[dependencies]
rust-iptables = { version = "0.0.2" }

Then, on your main.rs:

use rust_iptables::iptables;

fn main() {
    let ipt = iptables::new().unwrap();

    assert!(ipt.new_chain("nat", "TESTINGCHAIN").is_ok());
    assert!(ipt.append("nat", "TESTINGCHAIN", "-j ACCEPT").is_ok());
    assert!(ipt.exists("nat", "TESTINGCHAIN", "-j ACCEPT").unwrap());
    assert!(ipt.delete("nat", "TESTINGCHAIN", "-j ACCEPT").is_ok());
    assert!(ipt.save_all("test").is_ok());
    assert!(ipt.restore_all("test").is_ok());
    assert!(ipt.delete_chain("nat", "TESTINGCHAIN").is_ok());

    assert!(ipt.change_policy("filter", "FORWARD", "ACCEPT").is_ok());
}

More examples can be found here.

Supported Rust Versions

This library is verified to work in rustc 1.51.0 (nightly), and the support of other versions needs more testing.

License

This project is licensed under the Apache License 2.0.

Commit count: 0

cargo fmt