[package]
edition = "2024"
rust-version = "1.89"
name = "portmapper"
version = "0.14.0"
authors = ["n0 team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Portmapping utilities"
readme = "README.md"
keywords = [
"portmapping",
"pmp",
"pcp",
"upnp",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/n0-computer/net-tools"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"iroh_docsrs",
]
[features]
default = ["metrics"]
metrics = ["iroh-metrics/metrics"]
[lib]
name = "portmapper"
path = "src/lib.rs"
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.7"
[dependencies.derive_more]
version = "2.0.1"
features = [
"debug",
"display",
"from",
"try_into",
"deref",
]
[dependencies.futures-lite]
version = "2.5"
[dependencies.futures-util]
version = "0.3.25"
[dependencies.hyper-util]
version = "0.1.11"
[dependencies.igd-next]
version = "0.16.1"
features = ["aio_tokio"]
[dependencies.iroh-metrics]
version = "0.38"
default-features = false
[dependencies.libc]
version = "0.2.139"
[dependencies.n0-error]
version = "0.1.2"
[dependencies.netwatch]
version = "0.14.0"
[dependencies.num_enum]
version = "0.7"
[dependencies.rand]
version = "0.9"
[dependencies.serde]
version = "1.0.185"
features = [
"derive",
"rc",
]
[dependencies.smallvec]
version = "1.11.1"
[dependencies.socket2]
version = "0.6"
[dependencies.time]
version = "0.3.20"
[dependencies.tokio]
version = "1"
features = [
"io-util",
"macros",
"sync",
"rt",
"net",
"fs",
"io-std",
"signal",
"process",
]
[dependencies.tokio-util]
version = "0.7"
features = [
"io-util",
"io",
"codec",
"rt",
]
[dependencies.tower-layer]
version = "0.3.3"
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
features = ["serde"]
[dev-dependencies.ntest]
version = "0.9"
[dev-dependencies.rand_chacha]
version = "0.9"
[dev-dependencies.tokio]
version = "1"
features = [
"io-util",
"sync",
"rt",
"net",
"fs",
"macros",
"time",
"test-util",
]
[lints.clippy]
unused-async = "warn"
[lints.rust]
missing_debug_implementations = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(iroh_docsrs)"]