[package]
name = "tun"
version = "0.7.10"
edition = "2021"
authors = ["meh. <meh@schizofreni.co>", "@ssrlive"]
license = "WTFPL"
description = "TUN device creation and handling."
repository = "https://github.com/meh/rust-tun"
keywords = ["tun", "network", "tunnel", "bindings"]
rust-version = "1.77"
[package.metadata.docs.rs]
all-features = true
[lib]
crate-type = ["staticlib", "lib"]
[features]
default = []
async = [
"tokio",
"futures-core",
"futures",
"tokio-util",
"wintun-bindings/async",
]
[dependencies]
bytes = { version = "1" }
cfg-if = "1"
futures-core = { version = "0.3", optional = true }
libc = { version = "0.2", features = ["extra_traits"] }
log = "0.4"
thiserror = "2"
tokio = { version = "1", features = [
"net",
"macros",
"io-util",
], optional = true }
tokio-util = { version = "0.7", features = ["codec"], optional = true }
[dev-dependencies]
ctrlc2 = { version = "3", features = ["tokio", "termination"] }
env_logger = "0.11"
futures = "0.3"
packet = "0.1"
serde_json = "1"
tokio = { version = "1", features = ["rt-multi-thread"] }
[target.'cfg(unix)'.dependencies]
nix = { version = "0.29", features = ["ioctl"] }
[target.'cfg(target_os = "windows")'.dependencies]
futures = { version = "0.3", optional = true }
windows-sys = { version = "0.59", features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_WinTrust",
"Win32_Security_Cryptography",
"Win32_System_Threading",
"Win32_UI_WindowsAndMessaging",
"Win32_System_LibraryLoader",
] }
wintun-bindings = { version = "^0.7.7", features = [
"panic_on_unsent_packets",
"verify_binary_signature",
"async",
"enable_inner_logging",
"winreg",
] }
[target.'cfg(any(target_os = "macos", target_os = "freebsd"))'.dependencies]
ipnet = "2"
[[example]]
name = "read-async"
required-features = ["async"]
[[example]]
name = "read-async-codec"
required-features = ["async"]
[[example]]
name = "ping-tun"
required-features = ["async"]