From 49dff0c5af9b8cbbc6c2aa42987b130d2b8bf063 Mon Sep 17 00:00:00 2001 From: rustonbsd Date: Sun, 8 Nov 2026 20:37:34 +0100 Subject: [PATCH 1/2] sync: testing with iroh-mdns-sd --- Cargo.lock | 1284 ++++------------------------------------------------ Cargo.toml | 10 +- src/ssh.rs | 9 +- 3 files changed, 92 insertions(+), 1211 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d5ccad..2eca8d2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,53 +37,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "agnostic-io" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2ccca8d99791c4e65d2ddfbd8358d867996d296f0719d4c85037ef8fc1d560" -dependencies = [ - "futures-util", - "tokio", - "tokio-util", -] - -[[package]] -name = "agnostic-lite" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8c4f2af6ca9026ee5a94801f155df06446afa444e009b7cf63310bdda6d5025" -dependencies = [ - "atomic-time", - "feature-extension-for-smol", - "feature-extension-for-wasm-bindgen-futures", - "futures-util", - "paste", - "pin-project", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "agnostic-net" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd6f67ac5fbb0b4082a23f273e82dbba7519e3ea6883091bee72f84c7848ce5" -dependencies = [ - "agnostic-io", - "agnostic-lite", - "async-trait", - "futures-util", - "paste", - "pin-project-lite", - "rustix 1.1.5", - "socket2", - "tokio", - "tokio-stream", - "triomphe", - "windows-sys 0.61.2", -] - [[package]] name = "aho-corasick" version = "1.1.5" @@ -173,136 +126,6 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" -[[package]] -name = "async-channel" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "pin-project-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" -dependencies = [ - "async-lock", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" -dependencies = [ - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite", - "parking", - "polling", - "rustix 1.1.5", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-lock" -version = "3.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" -dependencies = [ - "event-listener", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-net" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" -dependencies = [ - "async-io", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-process" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" -dependencies = [ - "async-channel", - "async-io", - "async-lock", - "async-signal", - "async-task", - "blocking", - "cfg-if", - "event-listener", - "futures-lite", - "rustix 1.1.5", -] - -[[package]] -name = "async-signal" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" -dependencies = [ - "async-io", - "async-lock", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix 1.1.5", - "signal-hook-registry", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.6", -] - [[package]] name = "async_io_stream" version = "0.3.3" @@ -314,15 +137,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "atomic-time" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75821c8282c0e622f3892087c1eeb8d4e3964b92467a263a44afa7d79dec7f3c" -dependencies = [ - "portable-atomic", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -354,7 +168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" dependencies = [ "fastrand", - "gloo-timers 0.3.0", + "gloo-timers", "tokio", ] @@ -382,12 +196,6 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.13.2" @@ -425,86 +233,12 @@ dependencies = [ "objc2", ] -[[package]] -name = "blocking" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" -dependencies = [ - "async-channel", - "async-task", - "futures-io", - "futures-lite", - "piper", -] - -[[package]] -name = "borsh" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" -dependencies = [ - "bytes", - "cfg_aliases", -] - -[[package]] -name = "builder-pattern" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85376b93d8efe18dd819f56505e33e7a9c0f93fb02bd761f8690026178ed6e5" -dependencies = [ - "builder-pattern-macro", - "futures", -] - -[[package]] -name = "builder-pattern-macro" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d624ef88b39588d113f807ffb38ee968aafc388ca57dd7a9a7b82d3de1f5f4" -dependencies = [ - "bitflags 1.3.2", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "bumpalo" version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" -[[package]] -name = "bytecheck" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26333eeac754f0ad8a6bcd0eb0ac012156302e4e16b852b72ee399aea4f12c29" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "rancor", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d07918caa9eeaaf06b7873925c53a61daac173539b4f7715090745e44e4e69" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.6", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.12.1" @@ -631,166 +365,16 @@ dependencies = [ name = "colorchoice" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" - -[[package]] -name = "combine" -version = "4.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "compio" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19d81c636b0f47aa50041d25b02d9d8289a3319727a8051209f71bea10e89d6" -dependencies = [ - "compio-buf", - "compio-driver", - "compio-log", - "compio-runtime", -] - -[[package]] -name = "compio-buf" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b51a2c35873865376ed4cdb6cfeb602b6cf569815f017ddd7bd8f86ad49b34c7" -dependencies = [ - "arrayvec", - "bytes", - "libc", -] - -[[package]] -name = "compio-driver" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293e8086a35f52b5002402937cf4e69b5e414917e511c29c5e7ba2cebe6ef7b3" -dependencies = [ - "bitflags 2.13.2", - "cfg_aliases", - "compio-buf", - "compio-log", - "compio-send-wrapper", - "crossbeam-queue", - "flume", - "futures-util", - "io-uring", - "libc", - "linux-raw-sys 0.12.1", - "mod_use", - "once_cell", - "pastey", - "polling", - "rustix 1.1.5", - "smallvec", - "socket2", - "synchrony", - "thin-cell", - "windows-sys 0.61.2", -] - -[[package]] -name = "compio-executor" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94961c5908b02bbb082e046968b8ee3d18995845a5c261376f0b0b5c95c87c2b" -dependencies = [ - "compio-log", - "compio-send-wrapper", - "crossbeam-queue", - "loom", - "slotmap", -] - -[[package]] -name = "compio-io" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a354e085c4046dd8d2d9d514cf8c15c615eb8adf6c5f41dbf7899420457e9b" -dependencies = [ - "compio-buf", - "futures-util", - "libc", - "pastey", - "pin-project-lite", - "rustix 1.1.5", - "synchrony", - "windows-sys 0.61.2", -] - -[[package]] -name = "compio-log" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd867f29de59e4eff577dfeee3744cb0a264249f3faaf11945e8be79a3c3c62" -dependencies = [ - "tracing", -] - -[[package]] -name = "compio-net" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31737ec57865d2b46284def673cd21fe478c592ca05c1e040e10d457aac6c2a8" -dependencies = [ - "compio-buf", - "compio-driver", - "compio-io", - "compio-runtime", - "either", - "futures-util", - "libc", - "once_cell", - "pin-project-lite", - "socket2", - "synchrony", - "widestring", - "windows-sys 0.61.2", -] - -[[package]] -name = "compio-runtime" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20406f0a4e69cdd0c0a58c4a7cf51bcc965a543fb5da2fe931e970354e291ded" -dependencies = [ - "compio-buf", - "compio-driver", - "compio-executor", - "compio-io", - "compio-log", - "compio-send-wrapper", - "futures-util", - "libc", - "pin-project-lite", - "scoped-tls", - "synchrony", - "windows-sys 0.61.2", -] - -[[package]] -name = "compio-send-wrapper" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4a63ae089032966c7eb5411267dd14524fb249e6833818b2d6d9d9548bf504" -dependencies = [ - "cfg-if", - "loom", -] +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] -name = "concurrent-queue" -version = "2.5.0" +name = "combine" +version = "4.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" dependencies = [ - "crossbeam-utils", + "bytes", + "memchr", ] [[package]] @@ -873,12 +457,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - [[package]] name = "crossbeam-channel" version = "0.5.17" @@ -888,15 +466,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-queue" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e8bd762f7479489c70ed6c768ddca99d7296857de437a68dcb2a94365b3fae" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.23" @@ -1058,7 +627,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.13.2", + "bitflags", "block2", "libc", "objc2", @@ -1086,15 +655,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "document-features" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" -dependencies = [ - "litrs", -] - [[package]] name = "dyn-clone" version = "1.0.20" @@ -1134,99 +694,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" -[[package]] -name = "embassy-futures" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2d050bdc5c21e0862a89256ed8029ae6c290a93aecefc73084b3002cdebb01" - -[[package]] -name = "embassy-net" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347bc855bdbdf50ed9c5a1d80e8204badb0ba149b8732dde38e1e9708ed9d313" -dependencies = [ - "document-features", - "embassy-net-driver", - "embassy-sync", - "embassy-time", - "embedded-io-async", - "embedded-nal-async", - "heapless", - "managed", - "smoltcp", -] - -[[package]] -name = "embassy-net-driver" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524eb3c489760508f71360112bca70f6e53173e6fe48fc5f0efd0f5ab217751d" - -[[package]] -name = "embassy-sync" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bbd85cf5a5ae56bdf26f618364af642d1d0a4e245cdd75cd9aabda382f65a81" -dependencies = [ - "cfg-if", - "critical-section", - "embedded-io-async", - "futures-core", - "futures-sink", - "heapless", -] - -[[package]] -name = "embassy-time" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592b0c143ec626e821d4d90da51a2bd91d559d6c442b7c74a47d368c9e23d97a" -dependencies = [ - "cfg-if", - "critical-section", - "document-features", - "embassy-time-driver", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "futures-core", -] - -[[package]] -name = "embassy-time-driver" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee71af1b3a0deaa53eaf2d39252f83504c853646e472400b763060389b9fcc9" -dependencies = [ - "document-features", -] - -[[package]] -name = "embedded-hal" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff" -dependencies = [ - "nb 0.1.3", - "void", -] - -[[package]] -name = "embedded-hal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" - -[[package]] -name = "embedded-hal-async" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4c685bbef7fe13c3c6dd4da26841ed3980ef33e841cddfa15ce8a8fb3f1884" -dependencies = [ - "embedded-hal 1.0.0", -] - [[package]] name = "embedded-io" version = "0.4.0" @@ -1239,40 +706,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" -[[package]] -name = "embedded-io" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7" - -[[package]] -name = "embedded-io-async" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2564b9f813c544241430e147d8bc454815ef9ac998878d30cc3055449f7fd4c0" -dependencies = [ - "embedded-io 0.7.1", -] - -[[package]] -name = "embedded-nal" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56a28be191a992f28f178ec338a0bf02f63d7803244add736d026a471e6ed77" -dependencies = [ - "nb 1.1.0", -] - -[[package]] -name = "embedded-nal-async" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5a1bd585135d302f8f6d7de329310938093da6271b37a6c94b8798795c0c6d" -dependencies = [ - "embedded-io-async", - "embedded-nal", -] - [[package]] name = "enum-assoc" version = "1.4.1" @@ -1300,55 +733,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "event-listener" -version = "5.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" -dependencies = [ - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener", - "pin-project-lite", -] - [[package]] name = "fastrand" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" -[[package]] -name = "feature-extension-for-smol" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680af37225fbd411cf212f49aff82d8d00c5a882d68a9d35d725370387f163ce" -dependencies = [ - "async-io", - "futures-channel", - "futures-util", - "smol", -] - -[[package]] -name = "feature-extension-for-wasm-bindgen-futures" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97c72525d3b1e0d516efba1ea6bf303774580ebe57c4b55cab5fc4c1d9c86bb2" -dependencies = [ - "futures-channel", - "futures-timer", - "wasm-bindgen-futures", -] - [[package]] name = "fiat-crypto" version = "0.3.0" @@ -1367,6 +757,8 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be" dependencies = [ + "futures-core", + "futures-sink", "spin 0.9.9", ] @@ -1488,16 +880,6 @@ version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" -[[package]] -name = "futures-timer" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" -dependencies = [ - "gloo-timers 0.4.0", - "send_wrapper", -] - [[package]] name = "futures-util" version = "0.3.34" @@ -1540,29 +922,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "getifs" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6e6a0cbb0aa38784226ac6aa9a8ddaf7683f0f6de05c699487de1cd30cae88" -dependencies = [ - "bitflags 2.13.2", - "cfg-if", - "hardware-address", - "ipnet", - "iprfc", - "iprobe", - "libc", - "linux-raw-sys 0.12.1", - "paste", - "rustix 1.1.5", - "smallvec-wrapper", - "smol_str", - "triomphe", - "widestring", - "windows-sys 0.61.2", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -1612,18 +971,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gloo-timers" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "482ce8a491a501da4cd806bd190275363d674f2845005c6ddbd5d3e1dd54495d" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "h2" version = "0.4.20" @@ -1643,25 +990,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "hardware-address" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12579d20f6036b21016ca703197f69ba898a5a7d6db7fd7264d2cfcb3abd5dbb" -dependencies = [ - "paste", - "thiserror 2.0.21", -] - -[[package]] -name = "hash32" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" -dependencies = [ - "byteorder", -] - [[package]] name = "hashbrown" version = "0.17.1" @@ -1671,143 +999,12 @@ dependencies = [ "foldhash", ] -[[package]] -name = "heapless" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ba4bd83f9415b58b4ed8dc5714c76e626a105be4646c02630ad730ad3b5aa4" -dependencies = [ - "hash32", - "stable_deref_trait", -] - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" - -[[package]] -name = "hick" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da861a952812574464631a19c092e8d0082288caa2ca598f9cd6076ef5683a9" -dependencies = [ - "hick-compio", - "hick-embassy", - "hick-reactor", - "hick-smoltcp", - "mdns-proto", -] - -[[package]] -name = "hick-compio" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90cce774d6c6763b8778ed281fe710cb7b314c0deab6e37071e3a36d0b4aa180" -dependencies = [ - "bytes", - "compio", - "compio-buf", - "compio-io", - "compio-net", - "compio-runtime", - "event-listener", - "futures", - "getifs", - "hick-trace", - "hick-udp", - "libc", - "mdns-proto", - "rand", - "slab", - "smol_str", - "thiserror 2.0.21", - "tracing", -] - -[[package]] -name = "hick-embassy" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387adaf4a68e709e7785415fd16440e14fb730dec6556fd987bf5731e657916d" -dependencies = [ - "embassy-futures", - "embassy-net", - "embassy-sync", - "embassy-time", - "hick-smoltcp", - "hick-trace", - "mdns-proto", - "rand_core", -] - -[[package]] -name = "hick-reactor" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50afb856af83b3719181bac8292e6bde7f0702ffb205955590dab09e9c273eb8" -dependencies = [ - "agnostic-lite", - "agnostic-net", - "async-channel", - "bytes", - "futures", - "getifs", - "hick-trace", - "hick-udp", - "mdns-proto", - "pin-project-lite", - "rand", - "slab", - "smol_str", - "thiserror 2.0.21", - "tracing", -] - -[[package]] -name = "hick-smoltcp" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96aeee3da30dd9832f70f421792440c8c870936add0c384c01e62d635eb2cf5c" -dependencies = [ - "hick-trace", - "mdns-proto", - "rand_core", - "smoltcp", -] - -[[package]] -name = "hick-trace" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524dba9548d64c58df78c5c903f15b3b5b6fb34c4bcb5620ec6348d717fe94cf" -dependencies = [ - "tracing", -] - -[[package]] -name = "hick-udp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71de986af87483ad390fbdb6eb6ad9e4f9e3b2e5783737b4d1db8cafcbe9ab73" -dependencies = [ - "derive_more", - "getifs", - "hick-trace", - "libc", - "rustix 1.1.5", - "socket2", - "thiserror 2.0.21", - "windows-sys 0.61.2", -] - [[package]] name = "home" version = "0.5.12" @@ -2078,6 +1275,16 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "if-addrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a05c691e1fae256cf7013d99dad472dc52d5543322761f83ec8d47eab40d2b" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "igd-next" version = "0.17.1" @@ -2117,17 +1324,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "io-uring" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3bd0ecfbb87805f538bb7b32e5239ca0763890c623e349860ecba69469f2bb" -dependencies = [ - "bitflags 2.13.2", - "cfg-if", - "libc", -] - [[package]] name = "ipconfig" version = "0.3.4" @@ -2147,31 +1343,11 @@ version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" -[[package]] -name = "iprfc" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9ffeec22969abcddea4070ffeffa22307f56e228063c26a9296c9a5e4bb9e2" -dependencies = [ - "bitflags 2.13.2", - "ipnet", - "paste", -] - -[[package]] -name = "iprobe" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd62ac914a5bf1539c0219670a907f222ad4b25214c853e4525e25efd272517" -dependencies = [ - "rustix 1.1.5", -] - [[package]] name = "iroh" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885787b892b5e2507c701f132ecbd45d2bad4bbb75157a19427087c16dadb833" +checksum = "e3689cab508af9bcef7816c1201b403595ec6aa20e7d15e1f9683bb4be4a5b17" dependencies = [ "backon", "blake3", @@ -2219,9 +1395,9 @@ dependencies = [ [[package]] name = "iroh-base" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ae9092be76c9f5429776ab3394f5a5a78dc19dc2524267e884a5b9781546c3f" +checksum = "43b72366b16001af3a51574233df88ca6d62da0215807549a769e7de887da803" dependencies = [ "curve25519-dalek", "data-encoding", @@ -2238,9 +1414,9 @@ dependencies = [ [[package]] name = "iroh-dns" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80276761b56e904e26ea71d0863beef0bb8d5ab6b639cbd1338e4b615209e3a1" +checksum = "7481d0792dde1035a2b06ec06ed3cf6d01fcb1a494e6931b489e32073382048d" dependencies = [ "arc-swap", "cfg_aliases", @@ -2261,9 +1437,9 @@ dependencies = [ [[package]] name = "iroh-mainline-address-lookup" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10c07e607e6c31c99f61a075e8d06a1d621c738797e801afb3e80fed861440e" +checksum = "4624139b4c3e5e9b5e9aa137e4e591b4462a450c77e64ef3f137230d3d787230" dependencies = [ "derive_more", "iroh", @@ -2278,14 +1454,18 @@ dependencies = [ ] [[package]] -name = "iroh-mdns-peer-lookup" -version = "0.1.2" +name = "iroh-mdns-sd" +version = "0.1.0-pre1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe86da65cdd27299aaf3e6e0a097ca1e514e6a8f138d9ae27d22386f2fd2b35" +checksum = "3b8f658593ab6a597895c3b686e6bd733e507bb78016ea90a304f9aef84a1b6a" dependencies = [ - "builder-pattern", - "hick", + "data-encoding", + "futures-util", "iroh", + "iroh-base", + "mdns-sd", + "n0-future", + "n0-watcher", "tokio", "tokio-stream", "tracing", @@ -2320,9 +1500,9 @@ dependencies = [ [[package]] name = "iroh-relay" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee116a8233f84980574bb8d11e4517503080cd2c3605bafca04ee9c35d708bd9" +checksum = "7e5589e7c1475700686603a970275687f760df853bc6525c7eb1347aa31d7230" dependencies = [ "blake3", "bytes", @@ -2343,6 +1523,7 @@ dependencies = [ "noq", "noq-proto", "num_enum", + "percent-encoding", "pin-project", "postcard", "rand", @@ -2372,7 +1553,7 @@ dependencies = [ "homedir", "iroh", "iroh-mainline-address-lookup", - "iroh-mdns-peer-lookup", + "iroh-mdns-sd", "libc", "rand", "regex", @@ -2495,9 +1676,9 @@ checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" [[package]] name = "libc" -version = "0.2.190" +version = "0.2.191" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" +checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" [[package]] name = "libredox" @@ -2526,18 +1707,6 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" -[[package]] -name = "litrs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - -[[package]] -name = "local-event" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ab4b951e96ffb2da6e25cec3d038d0e2930f4c406d1ec194b5120ae41ec6d3" - [[package]] name = "lock_api" version = "0.4.14" @@ -2561,10 +1730,7 @@ checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" dependencies = [ "cfg-if", "generator", - "pin-utils", "scoped-tls", - "serde", - "serde_json", "tracing", "tracing-subscriber", ] @@ -2590,12 +1756,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3d25b0e0b648a86960ac23b7ad4abb9717601dec6f66c165f5b037f3f03065f" -[[package]] -name = "managed" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" - [[package]] name = "matchers" version = "0.2.0" @@ -2606,19 +1766,18 @@ dependencies = [ ] [[package]] -name = "mdns-proto" -version = "0.3.0" +name = "mdns-sd" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4ed1f6ab416a98205b9b04a78695fd55765a461dd3173e5cea4c14e5088a71" +checksum = "e6743ed743ff2bada2b8651ef298d3f98addb0b74844f19cdd57137d8bd0219e" dependencies = [ - "bytes", - "derive_more", - "hick-trace", - "rand", - "rand_core", - "slab", - "smol_str", - "thiserror 2.0.21", + "fastrand", + "flume", + "if-addrs", + "log", + "mio", + "socket-pktinfo", + "socket2", ] [[package]] @@ -2634,36 +1793,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee" dependencies = [ "libc", + "log", "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.61.2", ] -[[package]] -name = "mod_use" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21909324aa58f5c284d91cac514c6d081210901dc372d7c8ea6a9d7e0406097a" - -[[package]] -name = "munge" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" -dependencies = [ - "munge_macro", -] - -[[package]] -name = "munge_macro" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "n0-dns-resolver" version = "0.1.0" @@ -2764,21 +1898,6 @@ dependencies = [ "n0-future", ] -[[package]] -name = "nb" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" -dependencies = [ - "nb 1.1.0", -] - -[[package]] -name = "nb" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" - [[package]] name = "ndk-context" version = "0.1.1" @@ -2857,7 +1976,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2288fcb784eb3defd5fb16f4c4160d5f477de192eac730f43e1d11c24d9a007" dependencies = [ - "bitflags 2.13.2", + "bitflags", "libc", "log", "netlink-packet-core 0.8.2", @@ -2869,7 +1988,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59d48ffc8b73a506e1ff0878528c72668f2bfbc3d875b6be890a96be5d0d5576" dependencies = [ - "bitflags 2.13.2", + "bitflags", "libc", "log", "netlink-packet-core 0.9.0", @@ -2959,7 +2078,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.13.2", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -2967,9 +2086,9 @@ dependencies = [ [[package]] name = "noq" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b78be567e796cfa74bb9bdc4117790af2d505eb887019cf8803244353eb09d89" +checksum = "6249a065adc1edbc1704a95436f38dd60476064dbc3b7c47cf279e02d1590eb5" dependencies = [ "bytes", "cfg_aliases", @@ -2989,9 +2108,9 @@ dependencies = [ [[package]] name = "noq-proto" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c1e5b6fe668491eca022f745a0a9402585626c73a7b839b3424ace15d6a9c8f" +checksum = "c01a35be3ed37558c8db69554419f24eff8a63599b54f711bbe3863ec727c47d" dependencies = [ "aes-gcm", "bytes", @@ -3016,9 +2135,9 @@ dependencies = [ [[package]] name = "noq-udp" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc50afea61aff926e150a36c31f06094608848e114a3fe667d76ec233163b1c" +checksum = "8d0160422832eea1cc11c34be04ee6d5a046452b0b46cfb14695d55a1f24c954" dependencies = [ "cfg_aliases", "libc", @@ -3088,7 +2207,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.13.2", + "bitflags", "block2", "dispatch2", "libc", @@ -3101,7 +2220,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e34919aba0d701380d911702455038a8a3587467fe0141d6a71501e7ffe48" dependencies = [ - "bitflags 2.13.2", + "bitflags", "objc2", "objc2-core-foundation", "objc2-foundation", @@ -3121,7 +2240,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.13.2", + "bitflags", "block2", "libc", "objc2", @@ -3134,7 +2253,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" dependencies = [ - "bitflags 2.13.2", + "bitflags", "objc2", "objc2-core-foundation", ] @@ -3155,7 +2274,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" dependencies = [ - "bitflags 2.13.2", + "bitflags", "dispatch2", "libc", "objc2", @@ -3209,12 +2328,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pastey" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" - [[package]] name = "pem-rfc7468" version = "1.0.0" @@ -3266,23 +2379,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pin-utils" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bee6c73da26345c729282832b60b0363cf3dd9f4bfd81d8551b7a1c889a113" - -[[package]] -name = "piper" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" -dependencies = [ - "atomic-waker", - "fastrand", - "futures-io", -] - [[package]] name = "pkcs8" version = "0.11.0" @@ -3306,20 +2402,6 @@ dependencies = [ "time", ] -[[package]] -name = "polling" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix 1.1.5", - "windows-sys 0.61.2", -] - [[package]] name = "polyval" version = "0.6.2" @@ -3427,26 +2509,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "ptr_meta" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743da816b98c921cdbe8628ef7381b76f25ecf4da599fc80aca90eae7ef70cc0" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8d9ca532f185d5d4db7a7c9d51420b452168ea1c2b913953281bd6fe1fcbd0" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.6", -] - [[package]] name = "quick-xml" version = "0.42.0" @@ -3471,15 +2533,6 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rancor" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b534442d0fcdb55d66f373d9cac6d33b6293a2335bc2136dbd06ce0e87d2572" -dependencies = [ - "ptr_meta", -] - [[package]] name = "rand" version = "0.10.3" @@ -3535,15 +2588,6 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" -[[package]] -name = "rend" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "663ba70707f96e871406fe10d68128412e619b06d1d47cb91c3a4c6501176240" -dependencies = [ - "bytecheck", -] - [[package]] name = "reqwest" version = "0.13.5" @@ -3595,37 +2639,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rkyv" -version = "0.8.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9776093b7ca170454ab1406954f7b7d97a57c51dc6c0642957fb2ef25c2d399" -dependencies = [ - "bytecheck", - "bytes", - "hashbrown", - "indexmap", - "munge", - "ptr_meta", - "rancor", - "rend", - "rkyv_derive", - "smallvec", - "tinyvec", - "uuid", -] - -[[package]] -name = "rkyv_derive" -version = "0.8.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c25ef604ac7dd839d44d64648952ea23c97866f124ff671b0ed2cf3ad9bb06e" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.6", -] - [[package]] name = "runas" version = "1.2.0" @@ -3671,7 +2684,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.13.2", + "bitflags", "errno", "libc", "linux-raw-sys 0.4.15", @@ -3684,7 +2697,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ - "bitflags 2.13.2", + "bitflags", "errno", "libc", "linux-raw-sys 0.12.1", @@ -3693,9 +2706,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.45" +version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634" +checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [ "log", "once_cell", @@ -3814,7 +2827,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.13.2", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -3911,19 +2924,6 @@ dependencies = [ "syn 3.0.6", ] -[[package]] -name = "serde_json" -version = "1.0.151" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - [[package]] name = "serdect" version = "0.4.3" @@ -4007,7 +3007,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6f884fa9a8d48101774bfbd3aeb81e968dd22cffd19a372da69f183db22c1a" dependencies = [ - "bitflags 2.13.2", + "bitflags", ] [[package]] @@ -4016,15 +3016,6 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" -[[package]] -name = "slotmap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" -dependencies = [ - "version_check", -] - [[package]] name = "smallvec" version = "1.16.2" @@ -4032,56 +3023,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9395f0f0eee849a9b707b2f06bb92a6a422090e2123bb2ef8e87a0e61892a8e" [[package]] -name = "smallvec-wrapper" +name = "socket-pktinfo" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e7ac95ddfb355a82e23e3bdce91b646b847307bb481b1f7bc7f44942461d571" -dependencies = [ - "either", - "paste", - "rkyv", - "serde", - "smallvec", -] - -[[package]] -name = "smol" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" -dependencies = [ - "async-channel", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-net", - "async-process", - "blocking", - "futures-lite", -] - -[[package]] -name = "smol_str" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" +checksum = "612942246d0cc239cfd83af1dfd39be47f649208a3524e5e9da651910128e0ac" dependencies = [ - "borsh", - "serde_core", -] - -[[package]] -name = "smoltcp" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f73d40463bba65efc9adc6370b56df76d563cc46e2482bba58351b4afb7535e" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "cfg-if", - "heapless", - "managed", + "libc", + "socket2", + "windows-sys 0.61.2", ] [[package]] @@ -4181,17 +3130,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.119" @@ -4223,18 +3161,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "synchrony" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d6d5fbc4583cf3e5eee953506f13853a42ee6b4a21a983dffffb10c765cb80" -dependencies = [ - "event-listener", - "futures-util", - "local-event", - "loom", -] - [[package]] name = "synstructure" version = "0.14.0" @@ -4252,7 +3178,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "501336eb7ba9e417300a6a0fa985721065467aa83a6dcf0422a8e43e4c0328fa" dependencies = [ - "bitflags 2.13.2", + "bitflags", "core-foundation", "system-configuration-sys", ] @@ -4280,15 +3206,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "thin-cell" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d3c47fea6e344ef1ac01be266c27945ec30ae8049c3292c897f0878de5c784" -dependencies = [ - "synchrony", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -4387,9 +3304,9 @@ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tokio" -version = "1.53.2" +version = "1.54.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e95f91fcc7a621e8b030f6aa23c71fe9838ae2fb4d8118b75602a328f5144044" +checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3" dependencies = [ "bytes", "libc", @@ -4442,7 +3359,6 @@ checksum = "e464cf451ba96ebfc6f9b6542f17ee8b8956e33f1e40d9690624e59d7a7f8a4b" dependencies = [ "bytes", "futures-core", - "futures-io", "futures-sink", "futures-util", "libc", @@ -4524,7 +3440,7 @@ version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ - "bitflags 2.13.2", + "bitflags", "bytes", "futures-util", "http", @@ -4623,16 +3539,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "triomphe" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40688ea6389c8171614b25491f71d4a27946e0c7ce2da1c6de27e25abf1a0ae" -dependencies = [ - "serde", - "stable_deref_trait", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -4704,16 +3610,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97277d36b9c3ace13e58fa6e753f8b0bbbf302a18dd193240d70f9e29681059a" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "valuable" version = "0.1.1" @@ -4726,12 +3622,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - [[package]] name = "walkdir" version = "2.5.0" @@ -5133,7 +4023,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "857224b3b211c6f3616921f081ee54721ee3ad2ace2fac6a6337e032f7b4dcf2" dependencies = [ - "bitflags 2.13.2", + "bitflags", "widestring", "windows-sys 0.61.2", ] @@ -5589,9 +4479,3 @@ dependencies = [ "quote", "syn 3.0.6", ] - -[[package]] -name = "zmij" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/Cargo.toml b/Cargo.toml index f0b2553..b962afb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,16 +12,16 @@ edition = "2024" [dependencies] anyhow = "1.0.104" -iroh = "1.3.0" -iroh-mdns-peer-lookup = "0.1.2" -iroh-mainline-address-lookup = "0.6.0" +iroh = "1.4.1" +iroh-mdns-sd = "0.1.0-pre1" +iroh-mainline-address-lookup = "0.6.1" ed25519-dalek = { version = "3.0.0", features = ["rand_core"] } rand = "0.10.3" tokio-stream = { version = "0.1.19", features = ["sync"] } tracing = "0.1.44" tracing-subscriber = { version = "0.3.23", features = ["fmt", "ansi"] } tracing-appender = "0.2.5" -tokio = { version = "1.53.2", features = ["macros", "io-util", "sync", "rt-multi-thread", "signal", "process"] } +tokio = { version = "1.54.1", features = ["macros", "io-util", "sync", "rt-multi-thread", "signal", "process"] } clap = { version = "4.6.1", features = ["derive"] } homedir = "0.3.6" whoami = "2.1.3" @@ -51,7 +51,7 @@ features = [ ] [target.'cfg(unix)'.dependencies.libc] -version = "0.2.190" +version = "0.2.191" [profile.release] opt-level = 3 diff --git a/src/ssh.rs b/src/ssh.rs index d407cbf..00fab86 100644 --- a/src/ssh.rs +++ b/src/ssh.rs @@ -4,7 +4,7 @@ use std::{ffi::OsString, io, path::Path, process::Stdio, time::Duration}; use anyhow::bail; use ed25519_dalek::SECRET_KEY_LENGTH; use homedir::my_home; -use iroh_mainline_address_lookup::DhtAddressLookup; +use iroh_mdns_sd::MdnsAddressLookup; use regex::Regex; use std::sync::Arc; @@ -93,13 +93,10 @@ impl Builder { pub async fn build(&mut self) -> anyhow::Result { // Iroh setup let secret_key = SecretKey::from_bytes(&self.secret_key); - let mdns_lookup = iroh_mdns_peer_lookup::Options::new() - .announce(self.accept_incoming) - .build(); let mut builder = Endpoint::builder(iroh::endpoint::presets::N0) .secret_key(secret_key) - .address_lookup(DhtAddressLookup::builder()) - .address_lookup(iroh_mdns_peer_lookup::lookup(mdns_lookup).await?); + //.address_lookup(DhtAddressLookup::builder()) + .address_lookup(MdnsAddressLookup::builder().advertise(true)); if !self.relay_urls.is_empty() { let relay_map = self.relay_urls.iter().cloned().collect(); From d93e4bc53c5c345d10429e6118c2d4385581e575 Mon Sep 17 00:00:00 2001 From: rustonbsd Date: Mon, 9 Nov 2026 21:50:27 +0100 Subject: [PATCH 2/2] add: pkarr discovery after endpoint bind --- src/ssh.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ssh.rs b/src/ssh.rs index 00fab86..e7a83e4 100644 --- a/src/ssh.rs +++ b/src/ssh.rs @@ -4,6 +4,7 @@ use std::{ffi::OsString, io, path::Path, process::Stdio, time::Duration}; use anyhow::bail; use ed25519_dalek::SECRET_KEY_LENGTH; use homedir::my_home; +use iroh_mainline_address_lookup::DhtAddressLookup; use iroh_mdns_sd::MdnsAddressLookup; use regex::Regex; use std::sync::Arc; @@ -95,7 +96,6 @@ impl Builder { let secret_key = SecretKey::from_bytes(&self.secret_key); let mut builder = Endpoint::builder(iroh::endpoint::presets::N0) .secret_key(secret_key) - //.address_lookup(DhtAddressLookup::builder()) .address_lookup(MdnsAddressLookup::builder().advertise(true)); if !self.relay_urls.is_empty() { @@ -111,6 +111,24 @@ impl Builder { let endpoint = builder.bind().await?; + // We spawn this *after* the endpoint is bound because for some reason this blocks endpoint startup + // in some conditions leading to a laggy feeling iroh-ssh. This way we block nothing and eventually + // still get pkarr discovery. + tokio::spawn({ + let endpoint = endpoint.clone(); + async move { + endpoint.online().await; + let Ok(addr_lookup) = endpoint.address_lookup() else { + tracing::warn!("Pkarr discovery setup failed"); + return; + }; + + if let Ok(dht) = DhtAddressLookup::builder().build() { + addr_lookup.add(dht); + } + } + }); + let mut iroh_ssh = IrohSsh { public_key: *endpoint.id().as_bytes(), secret_key: self.secret_key,