getifs 0.4.0

A high-performance, cross-platform Rust library providing comprehensive network interface information without relying on libc's `getifaddrs`. Get interfaces, multicast addresses, local/private/public IP addresses, MTU, and gateway information with minimal overhead.
Documentation
[[bench]]
harness = false
name = "gateway"
path = "benches/gateway.rs"

[[bench]]
harness = false
name = "interfaces"
path = "benches/interfaces.rs"

[[bench]]
harness = false
name = "local_ip_address"
path = "benches/local_ip_address.rs"

[dependencies.bitflags]
version = "2"

[dependencies.cfg-if]
version = "1"

[dependencies.either]
version = "1"

[dependencies.hardware-address]
version = "0.2"

[dependencies.ipnet]
version = "2"

[dependencies.iprfc]
version = "0.2"

[dependencies.iprobe]
version = "0.1"

[dependencies.paste]
version = "1"

[dependencies.smallvec-wrapper]
version = "0.3"

[dependencies.smol_str]
version = "0.3"

[dependencies.triomphe]
version = "0.1"

[dev-dependencies.criterion]
version = "0.7"

[dev-dependencies.local-ip-address]
version = "0.6"

[dev-dependencies.network-interface]
version = "2"

[dev-dependencies.scopeguard]
version = "1"

[dev-dependencies.which]
version = "8"

[[example]]
name = "addrs"
path = "examples/addrs.rs"

[[example]]
name = "filter_by_rfc"
path = "examples/filter_by_rfc.rs"

[[example]]
name = "gateway"
path = "examples/gateway.rs"

[[example]]
name = "interfaces"
path = "examples/interfaces.rs"

[[example]]
name = "local_ip_addrs"
path = "examples/local_ip_addrs.rs"

[[example]]
name = "multicast_addrs"
path = "examples/multicast_addrs.rs"

[features]
default = []

[lib]
name = "getifs"
path = "src/lib.rs"

[lints.rust]
rust_2018_idioms = "warn"
single_use_lifetimes = "warn"

[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(apple)", "cfg(bsd_like)", "cfg(freebsdlike)", "cfg(netbsdlike)", "cfg(linux_like)"]
level = "warn"
priority = 0

[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["network-programming"]
description = "A high-performance, cross-platform Rust library providing comprehensive network interface information without relying on libc's `getifaddrs`. Get interfaces, multicast addresses, local/private/public IP addresses, MTU, and gateway information with minimal overhead."
documentation = "https://docs.rs/getifs"
edition = "2021"
homepage = "https://github.com/al8n/getifs"
keywords = ["local-ip-address", "interface", "network-interface", "mtu", "getifaddrs"]
license = "MIT OR Apache-2.0"
name = "getifs"
readme = "README.md"
repository = "https://github.com/al8n/getifs"
rust-version = "1.63.0"
version = "0.4.0"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[target.'cfg(all(any(target_os = "android", target_os = "linux")))'.dependencies.either]
version = "1"

[target.'cfg(all(any(target_os = "android", target_os = "linux")))'.dependencies.linux-raw-sys]
features = ["if_arp", "net", "netlink"]
version = "0.12"

[target.'cfg(all(any(target_os = "android", target_os = "linux")))'.dependencies.rustix]
features = ["net", "param"]
version = "1"

[target.'cfg(all(any(target_os = "android", target_os = "linux")))'.dev-dependencies.rustix]
features = ["net", "param", "process"]
version = "1"

[target.'cfg(all(not(windows), not(any(target_os = "android", target_os = "linux"))))'.dependencies.libc]
version = "0.2"

[target."cfg(windows)".dependencies.widestring]
version = "1"

[target."cfg(windows)".dependencies.windows-sys]
features = ["Win32_Networking_WinSock", "Win32_NetworkManagement", "Win32_NetworkManagement_IpHelper", "Win32_NetworkManagement_Ndis"]
version = "0.61"

[[test]]
name = "interfaces"
path = "tests/interfaces.rs"