# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.76" name = "iroh-net" version = "0.28.1" authors = [ "dignifiedquire ", "n0 team", ] build = false autobins = false autoexamples = false autotests = false autobenches = false description = "networking support for iroh" readme = "README.md" keywords = [ "quic", "networking", "holepunching", "p2p", ] license = "MIT OR Apache-2.0" repository = "https://github.com/n0-computer/iroh" [package.metadata.docs.rs] all-features = true rustdoc-args = [ "--cfg", "iroh_docsrs", ] [lib] name = "iroh_net" path = "src/lib.rs" [[bin]] name = "iroh-relay" path = "src/bin/iroh-relay.rs" required-features = ["iroh-relay"] [[example]] name = "connect" path = "examples/connect.rs" [[example]] name = "connect-unreliable" path = "examples/connect-unreliable.rs" [[example]] name = "dht_discovery" path = "examples/dht_discovery.rs" required-features = ["discovery-pkarr-dht"] [[example]] name = "listen" path = "examples/listen.rs" [[example]] name = "listen-unreliable" path = "examples/listen-unreliable.rs" [[example]] name = "locally-discovered-nodes" path = "examples/locally-discovered-nodes.rs" required-features = ["discovery-local-network"] [[bench]] name = "key" path = "benches/key.rs" harness = false [dependencies.anyhow] version = "1" [dependencies.axum] version = "0.7.4" optional = true [dependencies.backoff] version = "0.4.0" [dependencies.base64] version = "0.22.1" [dependencies.bytes] version = "1.7" [dependencies.clap] version = "4" features = ["derive"] optional = true [dependencies.der] version = "0.7" features = [ "alloc", "derive", ] [dependencies.derive_more] version = "1.0.0" features = [ "debug", "display", "from", "try_into", "deref", ] [dependencies.futures-buffered] version = "0.2.8" [dependencies.futures-concurrency] version = "7.6.0" [dependencies.futures-lite] version = "2.3" [dependencies.futures-sink] version = "0.3.25" [dependencies.futures-util] version = "0.3.25" [dependencies.genawaiter] version = "0.99.1" features = ["futures03"] optional = true [dependencies.governor] version = "0.6.0" [dependencies.hex] version = "0.4.3" [dependencies.hickory-proto] version = "=0.25.0-alpha.2" [dependencies.hickory-resolver] version = "=0.25.0-alpha.2" [dependencies.hostname] version = "0.3.1" [dependencies.http] version = "1" [dependencies.http-body-util] version = "0.1.0" [dependencies.hyper] version = "1" features = [ "server", "client", "http1", ] [dependencies.hyper-util] version = "0.1.1" [dependencies.igd-next] version = "0.15.1" features = ["aio_tokio"] [dependencies.iroh-base] version = "0.28.0" features = ["key"] [dependencies.iroh-metrics] version = "0.28.0" default-features = false [dependencies.libc] version = "0.2.139" [dependencies.netdev] version = "0.30.0" [dependencies.netwatch] version = "0.1.0" [dependencies.num_enum] version = "0.7" [dependencies.once_cell] version = "1.18.0" [dependencies.parking_lot] version = "0.12.1" [dependencies.pin-project] version = "1" [dependencies.pkarr] version = "2" features = [ "async", "relay", ] default-features = false [dependencies.portmapper] version = "0.1.0" [dependencies.postcard] version = "1" features = [ "alloc", "use-std", "experimental-derive", ] default-features = false [dependencies.quinn] version = "0.12.0" package = "iroh-quinn" [dependencies.quinn-proto] version = "0.12.0" package = "iroh-quinn-proto" [dependencies.quinn-udp] version = "0.5.5" package = "iroh-quinn-udp" [dependencies.rand] version = "0.8" [dependencies.rcgen] version = "0.12" [dependencies.regex] version = "1.7.1" optional = true [dependencies.reqwest] version = "0.12" features = ["rustls-tls"] default-features = false [dependencies.ring] version = "0.17" [dependencies.rustls] version = "0.23" features = ["ring"] default-features = false [dependencies.rustls-pemfile] version = "2.1" optional = true [dependencies.serde] version = "1" features = [ "derive", "rc", ] [dependencies.smallvec] version = "1.11.1" [dependencies.socket2] version = "0.5.3" [dependencies.strum] version = "0.26.2" features = ["derive"] [dependencies.stun-rs] version = "0.1.5" [dependencies.surge-ping] version = "0.8.0" [dependencies.swarm-discovery] version = "0.2.1" optional = true [dependencies.thiserror] version = "1" [dependencies.time] version = "0.3.20" [dependencies.tokio] version = "1" features = [ "io-util", "macros", "sync", "rt", "net", "fs", "io-std", "signal", "process", ] [dependencies.tokio-rustls] version = "0.26" features = [ "logging", "ring", ] default-features = false [dependencies.tokio-rustls-acme] version = "0.4" optional = true [dependencies.tokio-stream] version = "0.1.15" [dependencies.tokio-tungstenite] version = "0.21" [dependencies.tokio-tungstenite-wasm] version = "0.3" [dependencies.tokio-util] version = "0.7.12" features = [ "io-util", "io", "codec", "rt", ] [dependencies.toml] version = "0.8" optional = true [dependencies.tracing] version = "0.1" [dependencies.tracing-subscriber] version = "0.3" features = ["env-filter"] optional = true [dependencies.tungstenite] version = "0.21" [dependencies.url] version = "2.4" features = ["serde"] [dependencies.watchable] version = "1.1.2" [dependencies.webpki] version = "0.102" package = "rustls-webpki" [dependencies.webpki-roots] version = "0.26" [dependencies.x509-parser] version = "0.16" [dependencies.z32] version = "1.0.3" [dev-dependencies.axum] version = "0.7.4" [dev-dependencies.clap] version = "4" features = ["derive"] [dev-dependencies.criterion] version = "0.5.1" [dev-dependencies.crypto_box] version = "0.9.1" features = [ "serde", "chacha20", ] [dev-dependencies.iroh-test] version = "0.28.0" [dev-dependencies.mainline] version = "2.0.1" [dev-dependencies.ntest] version = "0.9" [dev-dependencies.pretty_assertions] version = "1.4" [dev-dependencies.proptest] version = "1.2.0" [dev-dependencies.rand_chacha] version = "0.3.1" [dev-dependencies.serde_json] version = "1.0.107" [dev-dependencies.testresult] version = "0.4.0" [dev-dependencies.tokio] version = "1" features = [ "io-util", "sync", "rt", "net", "fs", "macros", "time", "test-util", ] [dev-dependencies.tracing-subscriber] version = "0.3" features = ["env-filter"] [build-dependencies.duct] version = "0.13.6" [features] default = [ "metrics", "discovery-pkarr-dht", ] discovery-local-network = ["dep:swarm-discovery"] discovery-pkarr-dht = [ "pkarr/dht", "dep:genawaiter", ] iroh-relay = [ "dep:tokio-rustls-acme", "dep:axum", "dep:clap", "dep:toml", "dep:rustls-pemfile", "dep:regex", "dep:tracing-subscriber", ] metrics = ["iroh-metrics/metrics"] test-utils = ["iroh-relay"] [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.netlink-packet-core] version = "0.7.0" [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.netlink-packet-route] version = "0.17.0" [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.netlink-sys] version = "0.8.5" [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.rtnetlink] version = "0.13.0" [target.'cfg(target_os = "windows")'.dependencies.windows] version = "0.51" features = [ "Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_NetworkManagement_Ndis", "Win32_Networking_WinSock", ] [target.'cfg(target_os = "windows")'.dependencies.wmi] version = "0.13" [lints.clippy] unused-async = "warn" [lints.rust] missing_debug_implementations = "warn" [lints.rust.unexpected_cfgs] level = "warn" priority = 0 check-cfg = ["cfg(iroh_docsrs)"]