[package] name = "tun2" version = "4.0.0" edition = "2021" authors = ["meh. ", "@ssrlive"] license = "WTFPL" description = "TUN device creation and handling." repository = "https://github.com/ssrlive/rust-tun" keywords = ["tun", "network", "tunnel", "bindings"] [lib] crate-type = ["staticlib", "cdylib", "lib"] [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 = "1" tokio = { version = "1", features = [ "net", "macros", "io-util", ], optional = true } tokio-util = { version = "0.7", features = ["codec"], optional = true } [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", ] } [target.'cfg(any(target_os = "macos", target_os = "freebsd"))'.dependencies] ipnet = "2" [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"] } [features] default = [] # default = ["async"] async = [ "tokio", "futures-core", "futures", "tokio-util", "wintun-bindings/async", ] [package.metadata.docs.rs] features = ["async"] [[example]] name = "read-async" required-features = ["async"] [[example]] name = "read-async-codec" required-features = ["async"] [[example]] name = "ping-tun" required-features = ["async"]