#windows #firewall #winapi #com #ffi

sys winfw

Interact with the Windows Firewall from Rust

8 releases

0.1.8 Nov 27, 2022
0.1.7 Nov 27, 2022
0.1.6 Aug 5, 2022
0.1.5 Jul 5, 2022
0.1.1 Jun 19, 2021

#104 in Windows APIs

Download history 184/week @ 2024-09-20 131/week @ 2024-09-27 181/week @ 2024-10-04 141/week @ 2024-10-11 130/week @ 2024-10-18 82/week @ 2024-10-25 126/week @ 2024-11-01 125/week @ 2024-11-08 152/week @ 2024-11-15 187/week @ 2024-11-22 176/week @ 2024-11-29 201/week @ 2024-12-06 169/week @ 2024-12-13 54/week @ 2024-12-20 40/week @ 2024-12-27 93/week @ 2025-01-03

393 downloads per month

MIT/Apache

36KB
879 lines

Windows Firewall

Crates.io Documentation Crates.io

Interact with the Windows Firewall from Rust. Bindings for Windows Firewall, with clean & simple API for use with Rust.

This crate can perform the following:

  • Enumerate the Windows firewall rules
  • Add/Create a new Windows firewall rule
  • Delete an existing Windows firewall rule
  • Disable an existing Windows firewall rule

Usage

Cargo.toml:

[target.'cfg(windows)'.dependencies]
winfw = "0.1.8"

main.rs:

use winfw::get_fw_rules;

fn main() {
    // enumerating fw rules
    let rules = get_fw_rules();
    match rules {
        Err(rules) => println!("Error: {}", rules),
        Ok(rules) => {
            for rule in rules.iter() {
                println!("{}", rule);
            }
        }
    }
}

running the example

  • Show/list all configured firewall rules
cargo run --example list_all_rules
  • Add a new firewall rule
cargo run --example add_new_rule
  • Delete a firewall rule
cargo run --example del_rule
  • Disable a firewall rule
cargo run --example disable_rule

Requirements

  • Rust 1.50+
  • VS 2019 community edition

License: MIT/Apache 2.0

Dependencies

~0.3–1.3MB
~29K SLoC