diff --git a/Cargo.lock b/Cargo.lock index bb3b3ddc..fdd8e3e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,20 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "acto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c372578ce4215ccf94ec3f3585fbb6a902e47d07b064ff8a55d850ffb5025e" +dependencies = [ + "parking_lot", + "pin-project-lite", + "rustc_version", + "smol_str", + "tokio", + "tracing", +] + [[package]] name = "addr2line" version = "0.24.2" @@ -155,7 +169,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -167,7 +181,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -190,7 +204,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -201,7 +215,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -229,9 +243,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", @@ -253,7 +267,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tower", "tower-layer", @@ -276,7 +290,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -331,12 +345,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -451,9 +459,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "shlex", ] @@ -544,7 +552,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -647,9 +655,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -754,16 +762,17 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", @@ -809,7 +818,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -839,7 +848,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "unicode-xid", ] @@ -903,7 +912,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1048,7 +1057,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1061,7 +1070,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1081,7 +1090,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1101,9 +1110,9 @@ dependencies = [ [[package]] name = "erased_set" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a5aa24577083f8190ad401e376b55887c7cd9083ae95d83ceec5d28ea78125" +checksum = "a02a5d186d7bf1cb21f1f95e1a9cfa5c1f2dcd803a47aad454423ceec13525c5" [[package]] name = "errno" @@ -1328,7 +1337,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1449,14 +1458,15 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "governor" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +checksum = "0746aa765db78b521451ef74221663b57ba595bf83f75d0ce23cc09447c8139f" dependencies = [ "cfg-if", "dashmap", - "futures", + "futures-sink", "futures-timer", + "futures-util", "no-std-compat", "nonzero_ext", "parking_lot", @@ -1480,9 +1490,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -1508,9 +1518,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "hashlink" @@ -1539,6 +1549,30 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hickory-proto" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand", + "thiserror 1.0.69", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "hickory-proto" version = "0.25.0-alpha.2" @@ -1573,7 +1607,7 @@ checksum = "46c110355b5703070d9e29c344d79818a7cde3de9c27fc35750defea6074b0ad" dependencies = [ "cfg-if", "futures-util", - "hickory-proto", + "hickory-proto 0.25.0-alpha.2", "ipconfig", "lru-cache", "once_cell", @@ -1622,6 +1656,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "hostname" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +dependencies = [ + "cfg-if", + "libc", + "windows 0.52.0", +] + [[package]] name = "hostname-validator" version = "1.1.1" @@ -1687,9 +1732,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", @@ -1881,7 +1926,17 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1943,7 +1998,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -2005,14 +2060,95 @@ version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +[[package]] +name = "iroh" +version = "0.28.1" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" +dependencies = [ + "anyhow", + "axum", + "backoff", + "base64", + "bytes", + "der", + "derive_more", + "futures-buffered", + "futures-concurrency", + "futures-lite 2.5.0", + "futures-sink", + "futures-util", + "genawaiter", + "governor", + "hex", + "hickory-proto 0.25.0-alpha.2", + "hickory-resolver", + "hostname 0.4.0", + "http 1.1.0", + "http-body-util", + "hyper", + "hyper-util", + "igd-next", + "iroh-base", + "iroh-metrics", + "iroh-net-report", + "iroh-quinn", + "iroh-quinn-proto", + "iroh-quinn-udp", + "iroh-relay", + "libc", + "netdev", + "netlink-packet-core", + "netlink-packet-route 0.19.0", + "netlink-packet-route 0.21.0", + "netlink-sys", + "netwatch", + "num_enum", + "once_cell", + "parking_lot", + "pin-project", + "pkarr", + "portmapper", + "postcard", + "rand", + "rcgen", + "reqwest", + "ring", + "rtnetlink 0.13.1", + "rtnetlink 0.14.1", + "rustls", + "rustls-webpki", + "serde", + "smallvec", + "socket2", + "strum", + "stun-rs", + "surge-ping", + "swarm-discovery", + "thiserror 2.0.3", + "time", + "tokio", + "tokio-rustls", + "tokio-stream", + "tokio-tungstenite 0.24.0", + "tokio-tungstenite-wasm", + "tokio-util", + "tracing", + "url", + "watchable", + "webpki-roots", + "windows 0.58.0", + "wmi", + "x509-parser", + "z32", +] + [[package]] name = "iroh-base" version = "0.28.0" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" dependencies = [ "aead", "anyhow", - "cc", "crypto_box", "data-encoding", "derive_more", @@ -2027,7 +2163,7 @@ dependencies = [ "redb 2.2.0", "serde", "ssh-key", - "thiserror 1.0.69", + "thiserror 2.0.3", "ttl_cache", "url", "zeroize", @@ -2049,13 +2185,15 @@ dependencies = [ [[package]] name = "iroh-blobs" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#4c7b8e79f495376245852a14688ce23a12adda85" +source = "git+https://github.com/n0-computer/iroh-blobs?branch=main#b9dbf2cc1e6d8a6b60f3bf9f52b832fbd23c394e" dependencies = [ "anyhow", "async-channel", "bao-tree", "bytes", "chrono", + "clap", + "console", "derive_more", "futures-buffered", "futures-lite 2.5.0", @@ -2063,12 +2201,12 @@ dependencies = [ "genawaiter", "hashlink", "hex", + "indicatif", + "iroh", "iroh-base", "iroh-io", "iroh-metrics", - "iroh-net", "iroh-quinn", - "iroh-router", "nested_enum_utils", "num_cpus", "oneshot", @@ -2115,14 +2253,13 @@ dependencies = [ "futures-util", "hex", "indicatif", + "iroh", "iroh-base", "iroh-blake3", "iroh-blobs", "iroh-gossip", "iroh-io", "iroh-metrics", - "iroh-net", - "iroh-router", "iroh-test", "nested_enum_utils", "num_enum", @@ -2157,7 +2294,7 @@ dependencies = [ [[package]] name = "iroh-gossip" version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#0eba891f601b0a425be3f3a8a870d0c75eacc509" +source = "git+https://github.com/n0-computer/iroh-gossip?branch=main#89e91a34bd046fb7fbd504b2b8d0849e2865d410" dependencies = [ "anyhow", "async-channel", @@ -2168,11 +2305,10 @@ dependencies = [ "futures-lite 2.5.0", "futures-util", "indexmap", + "iroh", "iroh-base", "iroh-blake3", "iroh-metrics", - "iroh-net", - "iroh-router", "nested_enum_utils", "postcard", "quic-rpc", @@ -2203,7 +2339,7 @@ dependencies = [ [[package]] name = "iroh-metrics" version = "0.28.0" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" dependencies = [ "anyhow", "erased_set", @@ -2221,84 +2357,30 @@ dependencies = [ ] [[package]] -name = "iroh-net" -version = "0.28.1" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" +name = "iroh-net-report" +version = "0.28.0" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" dependencies = [ "anyhow", - "axum", - "backoff", - "base64 0.22.1", "bytes", - "cc", - "der", "derive_more", - "duct", "futures-buffered", - "futures-concurrency", "futures-lite 2.5.0", - "futures-sink", - "futures-util", - "genawaiter", - "governor", - "hex", - "hickory-proto", "hickory-resolver", - "hostname", - "http 1.1.0", - "http-body-util", - "hyper", - "hyper-util", - "igd-next", "iroh-base", "iroh-metrics", - "iroh-quinn", - "iroh-quinn-proto", - "iroh-quinn-udp", "iroh-relay", - "libc", - "netdev", - "netlink-packet-core", - "netlink-packet-route", - "netlink-sys", "netwatch", - "num_enum", - "once_cell", - "parking_lot", - "pin-project", - "pkarr", "portmapper", - "postcard", "rand", - "rcgen", "reqwest", - "ring", - "rtnetlink", "rustls", - "rustls-webpki", - "serde", - "smallvec", - "socket2", - "strum", - "stun-rs", "surge-ping", "thiserror 1.0.69", - "time", "tokio", - "tokio-rustls", - "tokio-stream", - "tokio-tungstenite", - "tokio-tungstenite-wasm", "tokio-util", "tracing", - "tungstenite", "url", - "watchable", - "webpki-roots", - "windows 0.51.1", - "wmi", - "x509-parser", - "z32", ] [[package]] @@ -2353,10 +2435,10 @@ dependencies = [ [[package]] name = "iroh-relay" version = "0.28.0" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" dependencies = [ "anyhow", - "base64 0.22.1", + "base64", "bytes", "clap", "derive_more", @@ -2367,9 +2449,9 @@ dependencies = [ "futures-util", "governor", "hex", - "hickory-proto", + "hickory-proto 0.25.0-alpha.2", "hickory-resolver", - "hostname", + "hostname 0.4.0", "http 1.1.0", "http-body-util", "hyper", @@ -2394,37 +2476,21 @@ dependencies = [ "smallvec", "socket2", "stun-rs", - "thiserror 1.0.69", + "thiserror 2.0.3", "time", "tokio", "tokio-rustls", "tokio-rustls-acme", - "tokio-tungstenite", + "tokio-tungstenite 0.24.0", "tokio-tungstenite-wasm", "tokio-util", "toml", "tracing", "tracing-subscriber", - "tungstenite", "url", "webpki-roots", ] -[[package]] -name = "iroh-router" -version = "0.28.0" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" -dependencies = [ - "anyhow", - "futures-buffered", - "futures-lite 2.5.0", - "futures-util", - "iroh-net", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "iroh-test" version = "0.28.0" @@ -2445,9 +2511,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jni" @@ -2489,9 +2555,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.162" +version = "0.2.166" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" [[package]] name = "libm" @@ -2523,9 +2589,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "litrs" @@ -2624,12 +2690,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" -[[package]] -name = "memalloc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1" - [[package]] name = "memchr" version = "2.7.4" @@ -2692,15 +2752,15 @@ dependencies = [ [[package]] name = "netdev" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7516ad2c46cc25da098ed7d6b9a0cbe9e1fbffbd04b1596148b95f2841179c83" +checksum = "f901362e84cd407be6f8cd9d3a46bccf09136b095792785401ea7d283c79b91d" dependencies = [ "dlopen2", + "ipnet", "libc", - "memalloc", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.17.1", "netlink-sys", "once_cell", "system-configuration", @@ -2732,6 +2792,35 @@ dependencies = [ "netlink-packet-utils", ] +[[package]] +name = "netlink-packet-route" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4" +dependencies = [ + "anyhow", + "byteorder", + "libc", + "log", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "483325d4bfef65699214858f097d504eb812c38ce7077d165f301ec406c3066e" +dependencies = [ + "anyhow", + "bitflags 2.6.0", + "byteorder", + "libc", + "log", + "netlink-packet-core", + "netlink-packet-utils", +] + [[package]] name = "netlink-packet-utils" version = "0.5.2" @@ -2775,29 +2864,32 @@ dependencies = [ [[package]] name = "netwatch" version = "0.1.0" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" dependencies = [ "anyhow", + "atomic-waker", "bytes", "derive_more", "futures-lite 2.5.0", "futures-sink", "futures-util", + "iroh-quinn-udp", "libc", "netdev", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.19.0", "netlink-sys", "once_cell", - "rtnetlink", + "rtnetlink 0.13.1", + "rtnetlink 0.14.1", "serde", "socket2", - "thiserror 1.0.69", + "thiserror 2.0.3", "time", "tokio", "tokio-util", "tracing", - "windows 0.51.1", + "windows 0.58.0", "wmi", ] @@ -2812,6 +2904,17 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "libc", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -2950,7 +3053,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3102,7 +3205,7 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.22.1", + "base64", "serde", ] @@ -3152,7 +3255,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3183,7 +3286,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3263,7 +3366,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3300,17 +3403,17 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "portmapper" version = "0.1.0" -source = "git+https://github.com/n0-computer/iroh?branch=main#4bd4df7a128f896982797dd39d07275cbc986694" +source = "git+https://github.com/n0-computer/iroh?branch=main#f7764ef130a0f2fd4938339178372a7176bd5def" dependencies = [ "anyhow", - "base64 0.22.1", + "base64", "bytes", "derive_more", "futures-lite 2.5.0", @@ -3324,7 +3427,7 @@ dependencies = [ "serde", "smallvec", "socket2", - "thiserror 1.0.69", + "thiserror 2.0.3", "time", "tokio", "tokio-util", @@ -3344,9 +3447,9 @@ dependencies = [ [[package]] name = "postcard" -version = "1.0.10" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" +checksum = "f63d01def49fc815900a83e7a4a5083d2abc81b7ddd569a3fa0477778ae9b3ec" dependencies = [ "cobs", "embedded-io 0.4.0", @@ -3467,9 +3570,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -3494,7 +3597,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3705,12 +3808,13 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1" +checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779" dependencies = [ "pem", "ring", + "rustls-pki-types", "time", "yasna", ] @@ -3770,7 +3874,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3840,7 +3944,7 @@ version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", "futures-util", @@ -3864,7 +3968,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tokio-rustls", "tower-service", @@ -3882,7 +3986,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ - "hostname", + "hostname 0.3.1", "quick-error", ] @@ -3913,9 +4017,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest", @@ -3941,11 +4045,29 @@ dependencies = [ "futures", "log", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.17.1", + "netlink-packet-utils", + "netlink-proto", + "netlink-sys", + "nix 0.26.4", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "rtnetlink" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5" +dependencies = [ + "futures", + "log", + "netlink-packet-core", + "netlink-packet-route 0.19.0", "netlink-packet-utils", "netlink-proto", "netlink-sys", - "nix", + "nix 0.27.1", "thiserror 1.0.69", "tokio", ] @@ -3982,9 +4104,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.40" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -3995,9 +4117,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "log", "once_cell", @@ -4121,9 +4243,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -4238,14 +4360,14 @@ checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -4408,11 +4530,17 @@ dependencies = [ "serde", ] +[[package]] +name = "smol_str" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad6c857cbab2627dcf01ec85a623ca4e7dcb5691cbaa3d7fb7653671f0d09c9" + [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -4520,7 +4648,7 @@ dependencies = [ "proc-macro2", "quote", "struct_iterable_internal", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4538,7 +4666,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4549,7 +4677,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4571,7 +4699,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4580,7 +4708,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b79cc624c9a747353810310af44f1f03f71eb4561284a894acc0396e6d0de76e" dependencies = [ - "base64 0.22.1", + "base64", "bounded-integer", "byteorder", "crc", @@ -4620,6 +4748,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "swarm-discovery" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39769914108ae68e261d85ceac7bce7095947130f79c29d4535e9b31fc702a40" +dependencies = [ + "acto", + "anyhow", + "hickory-proto 0.24.1", + "rand", + "socket2", + "tokio", + "tracing", +] + [[package]] name = "syn" version = "1.0.109" @@ -4633,9 +4776,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -4661,9 +4804,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -4676,7 +4819,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4736,7 +4879,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4785,7 +4928,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4796,7 +4939,7 @@ checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4891,7 +5034,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4907,12 +5050,12 @@ dependencies = [ [[package]] name = "tokio-rustls-acme" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ee7cbca7da86fa030e33b0deac55bad0e0bf8ab909f1a84666f04447f6339b" +checksum = "3184e8e292a828dd4bca5b2a60aba830ec5ed873a66c9ebb6e65038fa649e827" dependencies = [ "async-trait", - "base64 0.21.7", + "base64", "chrono", "futures", "log", @@ -4925,11 +5068,10 @@ dependencies = [ "rustls", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.3", "time", "tokio", "tokio-rustls", - "url", "webpki-roots", "x509-parser", ] @@ -4955,7 +5097,19 @@ dependencies = [ "futures-util", "log", "tokio", - "tungstenite", + "tungstenite 0.21.0", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite 0.24.0", ] [[package]] @@ -4971,7 +5125,7 @@ dependencies = [ "js-sys", "thiserror 1.0.69", "tokio", - "tokio-tungstenite", + "tokio-tungstenite 0.21.0", "wasm-bindgen", "web-sys", ] @@ -5056,9 +5210,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -5068,20 +5222,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -5160,6 +5314,24 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "rand", + "sha1", + "thiserror 1.0.69", + "utf-8", +] + [[package]] name = "typenum" version = "1.17.0" @@ -5195,9 +5367,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -5248,7 +5420,7 @@ version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" dependencies = [ - "base64 0.22.1", + "base64", "log", "once_cell", "rustls", @@ -5259,9 +5431,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna 1.0.3", @@ -5373,7 +5545,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-shared", ] @@ -5407,7 +5579,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5452,9 +5624,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -5518,12 +5690,12 @@ dependencies = [ [[package]] name = "windows" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", + "windows-core 0.52.0", + "windows-targets 0.52.6", ] [[package]] @@ -5536,15 +5708,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-core" version = "0.52.0" @@ -5575,7 +5738,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5586,7 +5749,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5788,9 +5951,9 @@ dependencies = [ [[package]] name = "wmi" -version = "0.13.4" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff00ac1309d4c462be86f03a55e409509e8bf4323ec296aeb4b381dd9aabe6ec" +checksum = "70df482bbec7017ce4132154233642de658000b24b805345572036782a66ad55" dependencies = [ "chrono", "futures", @@ -5856,9 +6019,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -5868,13 +6031,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -5902,27 +6065,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -5951,5 +6114,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] diff --git a/Cargo.toml b/Cargo.toml index f67070ad..db6a61f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,8 +39,7 @@ iroh-base = "0.28.0" iroh-blobs = { version = "0.28.0", optional = true, features = ["downloader"] } iroh-gossip = { version = "0.28.0", optional = true } iroh-metrics = { version = "0.28.0", default-features = false } -iroh-net = { version = "0.28.0", optional = true } -iroh-router = { version = "0.28.0", optional = true } +iroh = { version = "0.28", optional = true } num_enum = "0.7" postcard = { version = "1", default-features = false, features = ["alloc", "use-std", "experimental-derive"] } rand = "0.8.5" @@ -88,10 +87,10 @@ testdir = "0.9.1" [features] default = ["net", "metrics", "engine", "rpc", "test-utils"] -net = ["dep:iroh-net", "tokio/io-util", "dep:tokio-stream", "dep:tokio-util"] -metrics = ["iroh-metrics/metrics"] -engine = ["net", "dep:iroh-gossip", "dep:iroh-blobs", "dep:iroh-router"] -test-utils = ["iroh-net/test-utils"] +net = ["dep:iroh", "tokio/io-util", "dep:tokio-stream", "dep:tokio-util"] +metrics = ["iroh-metrics/metrics", "iroh/metrics"] +engine = ["net", "dep:iroh-gossip", "dep:iroh-blobs"] +test-utils = ["iroh/test-utils"] cli = ["rpc", "dep:clap", "dep:indicatif", "dep:console", "dep:colored", "dep:dialoguer", "dep:shellexpand", "iroh-blobs/rpc"] rpc = [ "engine", @@ -107,9 +106,8 @@ all-features = true rustdoc-args = ["--cfg", "iroh_docsrs"] [patch.crates-io] -iroh-router = { git = "https://github.com/n0-computer/iroh", branch = "main" } -iroh-net = { git = "https://github.com/n0-computer/iroh", branch = "main" } iroh-metrics = { git = "https://github.com/n0-computer/iroh", branch = "main" } iroh-base = { git = "https://github.com/n0-computer/iroh", branch = "main" } +iroh = { git = "https://github.com/n0-computer/iroh", branch = "main" } iroh-blobs = { git = "https://github.com/n0-computer/iroh-blobs", branch = "main" } iroh-gossip = { git = "https://github.com/n0-computer/iroh-gossip", branch = "main" } diff --git a/deny.toml b/deny.toml index 577bdba7..6f93301f 100644 --- a/deny.toml +++ b/deny.toml @@ -18,7 +18,6 @@ allow = [ "ISC", "MIT", "OpenSSL", - "Unicode-DFS-2016", "Zlib", "MPL-2.0", # https://fossa.com/blog/open-source-software-licenses-101-mozilla-public-license-2-0/ "Unicode-3.0" diff --git a/src/engine.rs b/src/engine.rs index d930e018..827f81a6 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -11,11 +11,11 @@ use std::{ use anyhow::{bail, Context, Result}; use futures_lite::{Stream, StreamExt}; +use iroh::{key::PublicKey, Endpoint, NodeAddr}; use iroh_blobs::{ downloader::Downloader, store::EntryStatus, util::local_pool::LocalPoolHandle, Hash, }; use iroh_gossip::net::Gossip; -use iroh_net::{key::PublicKey, Endpoint, NodeAddr}; use serde::{Deserialize, Serialize}; use tokio::sync::{mpsc, oneshot}; use tokio_util::task::AbortOnDropHandle; @@ -202,10 +202,7 @@ impl Engine { } /// Handle an incoming iroh-docs connection. - pub async fn handle_connection( - &self, - conn: iroh_net::endpoint::Connecting, - ) -> anyhow::Result<()> { + pub async fn handle_connection(&self, conn: iroh::endpoint::Connecting) -> anyhow::Result<()> { self.to_live_actor .send(ToLiveActor::HandleConnection { conn }) .await?; diff --git a/src/engine/gossip.rs b/src/engine/gossip.rs index ff98931c..b922e03a 100644 --- a/src/engine/gossip.rs +++ b/src/engine/gossip.rs @@ -4,8 +4,8 @@ use anyhow::{Context, Result}; use bytes::Bytes; use futures_lite::StreamExt; use futures_util::FutureExt; +use iroh::NodeId; use iroh_gossip::net::{Event, Gossip, GossipEvent, GossipReceiver, GossipSender, JoinOptions}; -use iroh_net::NodeId; use tokio::{ sync::mpsc, task::{AbortHandle, JoinSet}, diff --git a/src/engine/live.rs b/src/engine/live.rs index 100ed0a5..88849950 100644 --- a/src/engine/live.rs +++ b/src/engine/live.rs @@ -7,6 +7,7 @@ use std::{ use anyhow::{Context, Result}; use futures_lite::FutureExt; +use iroh::{key::PublicKey, Endpoint, NodeAddr, NodeId}; use iroh_blobs::{ downloader::{DownloadError, DownloadRequest, Downloader}, get::Stats, @@ -15,7 +16,6 @@ use iroh_blobs::{ }; use iroh_gossip::net::Gossip; use iroh_metrics::inc; -use iroh_net::{key::PublicKey, Endpoint, NodeAddr, NodeId}; use serde::{Deserialize, Serialize}; use tokio::{ sync::{self, mpsc, oneshot}, @@ -86,7 +86,7 @@ pub enum ToLiveActor { reply: sync::oneshot::Sender>, }, HandleConnection { - conn: iroh_net::endpoint::Connecting, + conn: iroh::endpoint::Connecting, }, AcceptSyncRequest { namespace: NamespaceId, @@ -759,7 +759,7 @@ impl LiveActor { } #[instrument("accept", skip_all)] - pub async fn handle_connection(&mut self, conn: iroh_net::endpoint::Connecting) { + pub async fn handle_connection(&mut self, conn: iroh::endpoint::Connecting) { let to_actor_tx = self.sync_actor_tx.clone(); let accept_request_cb = move |namespace, peer| { let to_actor_tx = to_actor_tx.clone(); diff --git a/src/engine/state.rs b/src/engine/state.rs index 83dc4ef9..bb10dd87 100644 --- a/src/engine/state.rs +++ b/src/engine/state.rs @@ -4,7 +4,7 @@ use std::{ }; use anyhow::Result; -use iroh_net::NodeId; +use iroh::NodeId; use serde::{Deserialize, Serialize}; use tracing::{debug, warn}; diff --git a/src/net.rs b/src/net.rs index 42353c3e..c62e5528 100644 --- a/src/net.rs +++ b/src/net.rs @@ -5,9 +5,9 @@ use std::{ time::{Duration, Instant}, }; +use iroh::{endpoint::get_remote_node_id, key::PublicKey, Endpoint, NodeAddr}; #[cfg(feature = "metrics")] use iroh_metrics::inc; -use iroh_net::{endpoint::get_remote_node_id, key::PublicKey, Endpoint, NodeAddr}; use serde::{Deserialize, Serialize}; use tracing::{debug, error_span, trace, Instrument}; @@ -106,7 +106,7 @@ pub enum AcceptOutcome { /// Handle an iroh-docs connection and sync all shared documents in the replica store. pub async fn handle_connection( sync: SyncHandle, - connecting: iroh_net::endpoint::Connecting, + connecting: iroh::endpoint::Connecting, accept_cb: F, ) -> Result where diff --git a/src/net/codec.rs b/src/net/codec.rs index e4e164d4..5a25fe74 100644 --- a/src/net/codec.rs +++ b/src/net/codec.rs @@ -3,7 +3,7 @@ use std::future::Future; use anyhow::{anyhow, ensure}; use bytes::{Buf, BufMut, BytesMut}; use futures_util::SinkExt; -use iroh_net::key::PublicKey; +use iroh::key::PublicKey; use serde::{Deserialize, Serialize}; use tokio::io::{AsyncRead, AsyncWrite}; use tokio_stream::StreamExt; @@ -294,8 +294,8 @@ impl BobState { #[cfg(test)] mod tests { use anyhow::Result; + use iroh::key::SecretKey; use iroh_base::hash::Hash; - use iroh_net::key::SecretKey; use rand_core::{CryptoRngCore, SeedableRng}; use super::*; diff --git a/src/protocol.rs b/src/protocol.rs index c5515849..ed9e4ea2 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -4,8 +4,7 @@ use std::sync::Arc; use anyhow::Result; use futures_lite::future::Boxed as BoxedFuture; -use iroh_net::endpoint::Connecting; -use iroh_router::ProtocolHandler; +use iroh::{endpoint::Connecting, protocol::ProtocolHandler}; use crate::engine::Engine; diff --git a/src/rpc/client/docs.rs b/src/rpc/client/docs.rs index 6f404091..7d6fe5f4 100644 --- a/src/rpc/client/docs.rs +++ b/src/rpc/client/docs.rs @@ -12,9 +12,9 @@ use anyhow::{anyhow, Context as _, Result}; use bytes::Bytes; use derive_more::{Display, FromStr}; use futures_lite::{Stream, StreamExt}; +use iroh::NodeAddr; use iroh_base::node_addr::AddrInfoOptions; use iroh_blobs::{export::ExportProgress, store::ExportMode, Hash}; -use iroh_net::NodeAddr; use portable_atomic::{AtomicBool, Ordering}; use quic_rpc::{ client::BoxedConnector, message::RpcMsg, transport::flume::FlumeConnector, Connector, diff --git a/src/rpc/proto.rs b/src/rpc/proto.rs index fc379fec..daad93491b 100644 --- a/src/rpc/proto.rs +++ b/src/rpc/proto.rs @@ -3,9 +3,9 @@ use std::path::PathBuf; use bytes::Bytes; +use iroh::NodeAddr; use iroh_base::node_addr::AddrInfoOptions; use iroh_blobs::{export::ExportProgress, store::ExportMode, Hash}; -use iroh_net::NodeAddr; use nested_enum_utils::enum_conversions; use quic_rpc::pattern::try_server_streaming::StreamCreated; use quic_rpc_derive::rpc_requests; diff --git a/src/ticket.rs b/src/ticket.rs index 0af620e4..be94dd5f 100644 --- a/src/ticket.rs +++ b/src/ticket.rs @@ -1,7 +1,7 @@ //! Tickets for [`iroh-docs`] documents. +use iroh::NodeAddr; use iroh_base::ticket; -use iroh_net::NodeAddr; use serde::{Deserialize, Serialize}; use crate::Capability; @@ -65,8 +65,8 @@ impl std::str::FromStr for DocTicket { mod tests { use std::str::FromStr; + use iroh::key::PublicKey; use iroh_base::base32; - use iroh_net::key::PublicKey; use iroh_test::{assert_eq_hex, hexdump::parse_hexdump}; use super::*; diff --git a/tests/sync.rs b/tests/sync.rs index 5a49b9e8..c024ef12 100644 --- a/tests/sync.rs +++ b/tests/sync.rs @@ -10,6 +10,10 @@ use anyhow::{anyhow, bail, Context, Result}; use bytes::Bytes; use futures_lite::Stream; use futures_util::{FutureExt, StreamExt, TryStreamExt}; +use iroh::{ + key::{PublicKey, SecretKey}, + RelayMode, +}; use iroh_base::node_addr::AddrInfoOptions; use iroh_blobs::Hash; use iroh_docs::{ @@ -17,10 +21,6 @@ use iroh_docs::{ store::{DownloadPolicy, FilterKind, Query}, AuthorId, ContentStatus, }; -use iroh_net::{ - key::{PublicKey, SecretKey}, - RelayMode, -}; use rand::{CryptoRng, Rng, SeedableRng}; use tracing::{debug, error_span, info, Instrument}; use tracing_subscriber::{prelude::*, EnvFilter}; @@ -491,7 +491,7 @@ async fn sync_subscribe_stop_close() -> Result<()> { #[cfg(feature = "test-utils")] async fn test_sync_via_relay() -> Result<()> { let _guard = iroh_test::logging::setup(); - let (relay_map, _relay_url, _guard) = iroh_net::test_utils::run_relay_server().await?; + let (relay_map, _relay_url, _guard) = iroh::test_utils::run_relay_server().await?; let node1 = Node::memory() .relay_mode(RelayMode::Custom(relay_map.clone())) @@ -587,9 +587,9 @@ async fn test_sync_via_relay() -> Result<()> { async fn sync_restart_node() -> Result<()> { let mut rng = test_rng(b"sync_restart_node"); setup_logging(); - let (relay_map, _relay_url, _guard) = iroh_net::test_utils::run_relay_server().await?; + let (relay_map, _relay_url, _guard) = iroh::test_utils::run_relay_server().await?; - let discovery_server = iroh_net::test_utils::DnsPkarrServer::run().await?; + let discovery_server = iroh::test_utils::DnsPkarrServer::run().await?; let node1_dir = tempfile::TempDir::with_prefix("test-sync_restart_node-node1")?; let secret_key_1 = SecretKey::generate_with_rng(&mut rng); diff --git a/tests/util.rs b/tests/util.rs index 7779d2f7..d1740363 100644 --- a/tests/util.rs +++ b/tests/util.rs @@ -9,11 +9,11 @@ use std::{ sync::Arc, }; +use iroh::{discovery::Discovery, dns::DnsResolver, key::SecretKey, NodeId, RelayMode}; use iroh_blobs::{ store::{GcConfig, Store as BlobStore}, util::local_pool::{LocalPool, Run}, }; -use iroh_net::{discovery::Discovery, dns::DnsResolver, key::SecretKey, NodeId, RelayMode}; use nested_enum_utils::enum_conversions; use quic_rpc::transport::{Connector, Listener}; use serde::{Deserialize, Serialize}; @@ -34,7 +34,7 @@ pub const DEFAULT_BIND_ADDR_V6: SocketAddrV6 = /// An iroh node that just has the blobs transport #[derive(Debug)] pub struct Node { - router: iroh_router::Router, + router: iroh::protocol::Router, client: Client, store: S, local_pool: LocalPool, @@ -126,7 +126,7 @@ impl Builder { addr_v4.set_port(0); addr_v6.set_port(0); } - let mut builder = iroh_net::Endpoint::builder() + let mut builder = iroh::Endpoint::builder() .bind_addr_v4(addr_v4) .bind_addr_v6(addr_v6) .discovery_n0() @@ -138,7 +138,7 @@ impl Builder { let endpoint = builder.bind().await?; let addr = endpoint.node_addr().await?; let local_pool = LocalPool::single(); - let mut router = iroh_router::Router::builder(endpoint.clone()); + let mut router = iroh::protocol::Router::builder(endpoint.clone()); // Setup blobs let downloader = iroh_blobs::downloader::Downloader::new( @@ -146,7 +146,7 @@ impl Builder { endpoint.clone(), local_pool.handle().clone(), ); - let blobs = Arc::new(iroh_blobs::net_protocol::Blobs::new_with_events( + let blobs = Arc::new(iroh_blobs::net_protocol::Blobs::new( store.clone(), local_pool.handle().clone(), Default::default(), @@ -185,12 +185,9 @@ impl Builder { return Err(err); } }; - router = router.accept(iroh_blobs::protocol::ALPN.to_vec(), blobs.clone()); - router = router.accept(iroh_docs::net::DOCS_ALPN.to_vec(), Arc::new(docs.clone())); - router = router.accept( - iroh_gossip::net::GOSSIP_ALPN.to_vec(), - Arc::new(gossip.clone()), - ); + router = router.accept(iroh_blobs::protocol::ALPN, blobs.clone()); + router = router.accept(iroh_docs::net::DOCS_ALPN, Arc::new(docs.clone())); + router = router.accept(iroh_gossip::net::GOSSIP_ALPN, Arc::new(gossip.clone())); // Build the router let router = router.spawn().await?;