diff --git a/Cargo.lock b/Cargo.lock index c78d107..45f5141 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,32 +2,12 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "aead" -version = "0.6.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8202ab55fcbf46ca829833f347a82a2a4ce0596f0304ac322c2d100030cd56" -dependencies = [ - "bytes", - "crypto-common 0.2.0-rc.4", - "inout", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -125,9 +105,6 @@ name = "anyhow" version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" -dependencies = [ - "backtrace", -] [[package]] name = "arbitrary" @@ -598,21 +575,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "backtrace" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-link 0.2.1", -] - [[package]] name = "bao-tree" version = "0.16.0" @@ -644,12 +606,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base16ct" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" - [[package]] name = "base32" version = "0.5.1" @@ -755,7 +711,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96eb4cdd6cf1b31d671e9efe75c5d1ec614776856cefbe109ca373554a6d514f" dependencies = [ "hybrid-array", - "zeroize", ] [[package]] @@ -767,12 +722,6 @@ dependencies = [ "objc2", ] -[[package]] -name = "btparse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387e80962b798815a2b5c4bcfdb6bf626fa922ffe9f74e373103b858738e9f31" - [[package]] name = "built" version = "0.8.0" @@ -888,18 +837,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "chacha20" -version = "0.10.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd162f2b8af3e0639d83f28a637e4e55657b7a74508dba5a9bf4da523d5c9e9" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", - "zeroize", -] - [[package]] name = "charset" version = "0.1.5" @@ -951,18 +888,6 @@ dependencies = [ "half", ] -[[package]] -name = "cipher" -version = "0.5.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e12a13eb01ded5d32ee9658d94f553a19e804204f2dc811df69ab4d9e0cb8c7" -dependencies = [ - "block-buffer 0.11.0", - "crypto-common 0.2.0-rc.4", - "inout", - "zeroize", -] - [[package]] name = "clap" version = "4.5.54" @@ -1041,17 +966,6 @@ dependencies = [ "objc", ] -[[package]] -name = "color-backtrace" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308329d5d62e877ba02943db3a8e8c052de9fde7ab48283395ba0e6494efbabd" -dependencies = [ - "backtrace", - "btparse", - "termcolor", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -1372,39 +1286,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8235645834fbc6832939736ce2f2d08192652269e11010a6240f61b908a1c6" dependencies = [ "hybrid-array", - "rand_core 0.9.5", -] - -[[package]] -name = "crypto_box" -version = "0.10.0-pre.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bda4de3e070830cf3a27a394de135b6709aefcc54d1e16f2f029271254a6ed9" -dependencies = [ - "aead", - "chacha20", - "crypto_secretbox", - "curve25519-dalek 5.0.0-pre.1", - "salsa20", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto_secretbox" -version = "0.2.0-pre.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54532aae6546084a52cef855593daf9555945719eeeda9974150e0def854873e" -dependencies = [ - "aead", - "chacha20", - "cipher", - "hybrid-array", - "poly1305", - "salsa20", - "subtle", - "zeroize", ] [[package]] @@ -1479,14 +1360,38 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + [[package]] name = "darling" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.114", ] [[package]] @@ -1503,13 +1408,24 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core 0.20.11", + "quote", + "syn 2.0.114", +] + [[package]] name = "darling_macro" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", "quote", "syn 2.0.114", ] @@ -1558,8 +1474,7 @@ dependencies = [ "image", "iroh", "iroh-base", - "iroh-metrics 0.38.1", - "iroh-quinn", + "iroh-metrics", "lib", "n0-error", "n0-future", @@ -1634,6 +1549,37 @@ dependencies = [ "serde_core", ] +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.114", +] + [[package]] name = "derive_more" version = "0.99.20" @@ -1695,7 +1641,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dac89f8a64533a9b0eaa73a68e424db0fb1fd6271c74cc0125336a05f090568d" dependencies = [ "block-buffer 0.11.0", - "const-oid 0.10.2", "crypto-common 0.2.0-rc.4", ] @@ -2478,7 +2423,7 @@ version = "3.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "594435fe09e345ee388e4e8422072ff7dfeca8729389fbd997b3f5504c44cd47" dependencies = [ - "pkcs8 0.11.0-rc.8", + "pkcs8 0.11.0-rc.10", "serde", "signature 3.0.0-rc.6", ] @@ -2525,7 +2470,7 @@ version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ - "base16ct 0.2.0", + "base16ct", "crypto-bigint", "digest 0.10.7", "ff", @@ -2579,6 +2524,17 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "enum-assoc" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed8956bd5c1f0415200516e78ff07ec9e16415ade83c056c230d7b7ea0d55b7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "enumflags2" version = "0.7.12" @@ -2615,7 +2571,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f43e744e4ea338060faee68ed933e46e722fb7f3617e722a5772d7e856d8b3ce" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.114", @@ -2703,6 +2659,18 @@ dependencies = [ "zune-inflate", ] +[[package]] +name = "fastbloom" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" +dependencies = [ + "getrandom 0.3.4", + "libm", + "rand 0.9.2", + "siphasher 1.0.1", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -3137,8 +3105,8 @@ dependencies = [ "libc", "log", "rustversion", - "windows-link 0.1.3", - "windows-result 0.3.4", + "windows-link 0.2.1", + "windows-result 0.4.1", ] [[package]] @@ -3210,12 +3178,6 @@ dependencies = [ "weezl", ] -[[package]] -name = "gimli" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" - [[package]] name = "gio" version = "0.18.4" @@ -3500,7 +3462,7 @@ dependencies = [ "http", "httpdate", "mime", - "sha1 0.10.6", + "sha1", ] [[package]] @@ -3718,7 +3680,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f471e0a81b2f90ffc0cb2f951ae04da57de8baa46fa99112b062a5173a5088d0" dependencies = [ "typenum", - "zeroize", ] [[package]] @@ -3831,7 +3792,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.62.2", ] [[package]] @@ -3930,6 +3891,12 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "identity-hash" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfdd7caa900436d8f13b2346fe10257e0c05c1f1f9e351f4f5d57c03bd5f45da" + [[package]] name = "idna" version = "1.1.0" @@ -4044,15 +4011,6 @@ dependencies = [ "cfb", ] -[[package]] -name = "inout" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" -dependencies = [ - "hybrid-array", -] - [[package]] name = "inplace-vec-builder" version = "0.1.1" @@ -4062,18 +4020,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "interpolate_name" version = "0.2.4" @@ -4127,15 +4073,13 @@ dependencies = [ [[package]] name = "iroh" -version = "0.95.1" +version = "0.96.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2374ba3cdaac152dc6ada92d971f7328e6408286faab3b7350842b2ebbed4789" +checksum = "3790cc3a5ef6a89a1e30b64de54de31e692958e2dc8a37cf2831d52c76805de9" dependencies = [ - "aead", "backon", "bytes", "cfg_aliases", - "crypto_box", "data-encoding", "derive_more 2.1.1", "ed25519-dalek 3.0.0-pre.1", @@ -4144,31 +4088,32 @@ dependencies = [ "hickory-resolver", "http", "igd-next", - "instant", "iroh-base", - "iroh-metrics 0.37.0", + "iroh-metrics", "iroh-quinn", "iroh-quinn-proto", - "iroh-quinn-udp", + "iroh-quinn-udp 0.8.0", "iroh-relay", "n0-error", "n0-future", "n0-watcher", "netdev", - "netwatch", + "netwatch 0.14.0", + "papaya", "pin-project", "pkarr", - "pkcs8 0.11.0-rc.8", + "pkcs8 0.11.0-rc.10", "portmapper", "rand 0.9.2", "reqwest", + "rustc-hash 2.1.1", "rustls", "rustls-pki-types", - "rustls-platform-verifier", "rustls-webpki", "serde", "smallvec", "strum", + "sync_wrapper", "time", "tokio", "tokio-stream", @@ -4177,14 +4122,13 @@ dependencies = [ "url", "wasm-bindgen-futures", "webpki-roots", - "z32", ] [[package]] name = "iroh-base" -version = "0.95.1" +version = "0.96.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a8c5fb1cc65589f0d7ab44269a76f615a8c4458356952c9b0ef1c93ea45ff8" +checksum = "b4c3fc0440c8775bf2677a58550fcef7e544346add01bf1b163f9fc0cedd436e" dependencies = [ "curve25519-dalek 5.0.0-pre.1", "data-encoding", @@ -4200,11 +4144,10 @@ dependencies = [ [[package]] name = "iroh-blobs" -version = "0.97.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c901304c1c28f257fcf9aae8c9149e54e0baf62f5eb2788cecde3bf1206a04e6" +checksum = "f1f253ea06293e51e166a88a3faa019b67e187d12bd7c6a04369a0ec86f53272" dependencies = [ - "anyhow", "arrayvec", "bao-tree", "bytes", @@ -4218,13 +4161,12 @@ dependencies = [ "iroh", "iroh-base", "iroh-io", - "iroh-metrics 0.37.0", + "iroh-metrics", "iroh-quinn", "iroh-tickets", "irpc", "n0-error", "n0-future", - "n0-snafu", "nested_enum_utils", "postcard", "rand 0.9.2", @@ -4235,7 +4177,6 @@ dependencies = [ "self_cell", "serde", "smallvec", - "snafu", "tokio", "tracing", ] @@ -4253,21 +4194,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "iroh-metrics" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e3381da7c93c12d353230c74bba26131d1c8bf3a4d8af0fec041546454582e" -dependencies = [ - "iroh-metrics-derive", - "itoa", - "n0-error", - "postcard", - "ryu", - "serde", - "tracing", -] - [[package]] name = "iroh-metrics" version = "0.38.1" @@ -4297,9 +4223,9 @@ dependencies = [ [[package]] name = "iroh-n0des" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49c691355d4b62e98a55e7d3fcf98ea3b800e7948c633cf937e7d31abe332f53" +checksum = "c953c0ecee4e35043433855a06f7358430c6bd9bf0adb088b8198d14c2606095" dependencies = [ "anyhow", "bytes", @@ -4308,7 +4234,7 @@ dependencies = [ "futures-buffered", "getrandom 0.3.4", "iroh", - "iroh-metrics 0.37.0", + "iroh-metrics", "iroh-n0des-macro", "iroh-tickets", "irpc", @@ -4342,7 +4268,7 @@ dependencies = [ [[package]] name = "iroh-proxy-utils" version = "0.1.0" -source = "git+https://github.com/n0-computer/iroh-proxy-utils?branch=main#9468236657df273592f40218a1788edc277964b4" +source = "git+https://github.com/n0-computer/iroh-proxy-utils?branch=deps%2Firoh-096#3f5c2fd9af78d97c481721bc82441c511d209f50" dependencies = [ "bytes", "derive_more 2.1.1", @@ -4364,39 +4290,46 @@ dependencies = [ [[package]] name = "iroh-quinn" -version = "0.14.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde160ebee7aabede6ae887460cd303c8b809054224815addf1469d54a6fcf7" +checksum = "034ed21f34c657a123d39525d948c885aacba59508805e4dd67d71f022e7151b" dependencies = [ "bytes", "cfg_aliases", "iroh-quinn-proto", - "iroh-quinn-udp", + "iroh-quinn-udp 0.8.0", "pin-project-lite", "rustc-hash 2.1.1", "rustls", - "socket2 0.5.10", + "socket2 0.6.1", "thiserror 2.0.17", "tokio", + "tokio-stream", "tracing", "web-time", ] [[package]] name = "iroh-quinn-proto" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535" +checksum = "0de99ad8adc878ee0e68509ad256152ce23b8bbe45f5539d04e179630aca40a9" dependencies = [ "bytes", - "getrandom 0.2.17", - "rand 0.8.5", + "derive_more 2.1.1", + "enum-assoc", + "fastbloom", + "getrandom 0.3.4", + "identity-hash", + "lru-slab", + "rand 0.9.2", "ring", "rustc-hash 2.1.1", "rustls", "rustls-pki-types", "rustls-platform-verifier", "slab", + "sorted-index-buffer", "thiserror 2.0.17", "tinyvec", "tracing", @@ -4405,23 +4338,35 @@ dependencies = [ [[package]] name = "iroh-quinn-udp" -version = "0.5.7" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973" +checksum = "a91fe9ec3db6615d7ab1b303717f3b98fc40b96955a4ea25b113b1b879f7481f" dependencies = [ "cfg_aliases", "libc", - "once_cell", - "socket2 0.5.10", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "iroh-quinn-udp" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f981dadd5a072a9e0efcd24bdcc388e570073f7e51b33505ceb1ef4668c80c86" +dependencies = [ + "cfg_aliases", + "libc", + "socket2 0.6.1", + "tracing", + "windows-sys 0.61.2", ] [[package]] name = "iroh-relay" -version = "0.95.1" +version = "0.96.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43fbdf2aeffa7d6ede1a31f6570866c2199b1cee96a0b563994623795d1bac2c" +checksum = "236c6f131ce774f7cc7548f467890c313b09f7849b8d703360d6602bc8c5184c" dependencies = [ "blake3", "bytes", @@ -4435,7 +4380,7 @@ dependencies = [ "hyper", "hyper-util", "iroh-base", - "iroh-metrics 0.37.0", + "iroh-metrics", "iroh-quinn", "iroh-quinn-proto", "lru", @@ -4451,7 +4396,6 @@ dependencies = [ "rustls-pki-types", "serde", "serde_bytes", - "sha1 0.11.0-rc.2", "strum", "tokio", "tokio-rustls", @@ -4459,6 +4403,7 @@ dependencies = [ "tokio-websockets", "tracing", "url", + "vergen-gitcl", "webpki-roots", "ws_stream_wasm", "z32", @@ -4466,9 +4411,9 @@ dependencies = [ [[package]] name = "iroh-tickets" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a322053cacddeca222f0999ce3cf6aa45c64ae5ad8c8911eac9b66008ffbaa5" +checksum = "09cd580bf680db919cbbce6886a47314acb0e9b4f7b639acebcea5e9f485d183" dependencies = [ "data-encoding", "derive_more 2.1.1", @@ -4480,9 +4425,9 @@ dependencies = [ [[package]] name = "irpc" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bee97aaa18387c4f0aae61058195dc9f9dea3e41c0e272973fe3e9bf611563d" +checksum = "f1bbc84aaeab13a6d7502bae4f40f2517b643924842e0230ea0bf807477cc208" dependencies = [ "futures-buffered", "futures-util", @@ -4513,9 +4458,9 @@ dependencies = [ [[package]] name = "irpc-iroh" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17b254105bdaf86bc63786a37f81ba40e84d861b870d7626b51e14ebbb2ba50" +checksum = "a0f6bddffe7992adcfb793dca9711d86b31bd3427d2443eff90525ac8593f268" dependencies = [ "getrandom 0.3.4", "iroh", @@ -4752,7 +4697,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03dee8252be137772a6ab3508b81cd797dee62ee771112a2453bc85cbbe150d2" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "serde", @@ -4813,15 +4758,12 @@ dependencies = [ "gateway-api", "hex", "http-body-util", - "httparse", "hyper", "hyper-util", "iroh", "iroh-base", - "iroh-blobs", "iroh-n0des", "iroh-proxy-utils", - "iroh-quinn", "iroh-relay", "iroh-tickets", "k8s-openapi", @@ -5045,6 +4987,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" +[[package]] +name = "mac-addr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3d25b0e0b648a86960ac23b7ad4abb9717601dec6f66c165f5b037f3f03065f" + [[package]] name = "macro-string" version = "0.1.4" @@ -5348,19 +5296,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "n0-snafu" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1815107e577a95bfccedb4cfabc73d709c0db6d12de3f14e0f284a8c5036dc4f" -dependencies = [ - "anyhow", - "btparse", - "color-backtrace", - "snafu", - "tracing-error", -] - [[package]] name = "n0-tracing-test" version = "0.3.0" @@ -5384,9 +5319,9 @@ dependencies = [ [[package]] name = "n0-watcher" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38acf13c1ddafc60eb7316d52213467f8ccb70b6f02b65e7d97f7799b1f50be4" +checksum = "38795f7932e6e9d1c6e989270ef5b3ff24ebb910e2c9d4bed2d28d8bae3007dc" dependencies = [ "derive_more 2.1.1", "n0-error", @@ -5469,18 +5404,23 @@ dependencies = [ [[package]] name = "netdev" -version = "0.38.2" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ab878b4c90faf36dab10ea51d48c69ae9019bcca47c048a7c9b273d5d7a823" +checksum = "dc9815643a243856e7bd84524e1ff739e901e846cfb06ad9627cd2b6d59bd737" dependencies = [ + "block2", + "dispatch2", "dlopen2 0.5.0", "ipnet", "libc", + "mac-addr", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.25.1", "netlink-sys", + "objc2-core-foundation", + "objc2-system-configuration", "once_cell", - "system-configuration", + "plist", "windows-sys 0.59.0", ] @@ -5505,6 +5445,18 @@ dependencies = [ "netlink-packet-core", ] +[[package]] +name = "netlink-packet-route" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ce3636fa715e988114552619582b530481fd5ef176a1e5c1bf024077c2c9445" +dependencies = [ + "bitflags 2.10.0", + "libc", + "log", + "netlink-packet-core", +] + [[package]] name = "netlink-proto" version = "0.12.0" @@ -5534,15 +5486,15 @@ dependencies = [ [[package]] name = "netwatch" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f2acd376ef48b6c326abf3ba23c449e0cb8aa5c2511d189dd8a8a3bfac889b" +checksum = "970729c08dbe7987d698f996c6b4945cbfdcdd6ee627df6de51d5469cec13b99" dependencies = [ "atomic-waker", "bytes", "cfg_aliases", "derive_more 2.1.1", - "iroh-quinn-udp", + "iroh-quinn-udp 0.7.0", "js-sys", "libc", "n0-error", @@ -5550,9 +5502,47 @@ dependencies = [ "n0-watcher", "netdev", "netlink-packet-core", - "netlink-packet-route", + "netlink-packet-route 0.28.0", "netlink-proto", "netlink-sys", + "objc2-core-foundation", + "objc2-system-configuration", + "pin-project-lite", + "serde", + "socket2 0.6.1", + "time", + "tokio", + "tokio-util", + "tracing", + "web-sys", + "windows 0.62.2", + "windows-result 0.4.1", + "wmi", +] + +[[package]] +name = "netwatch" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "454b8c0759b2097581f25ed5180b4a1d14c324fde6d0734932a288e044d06232" +dependencies = [ + "atomic-waker", + "bytes", + "cfg_aliases", + "derive_more 2.1.1", + "iroh-quinn-udp 0.8.0", + "js-sys", + "libc", + "n0-error", + "n0-future", + "n0-watcher", + "netdev", + "netlink-packet-core", + "netlink-packet-route 0.28.0", + "netlink-proto", + "netlink-sys", + "objc2-core-foundation", + "objc2-system-configuration", "pin-project-lite", "serde", "socket2 0.6.1", @@ -5740,19 +5730,28 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", "syn 2.0.114", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "oauth2" version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "chrono", "getrandom 0.2.17", "http", @@ -5835,7 +5834,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ "bitflags 2.10.0", + "block2", "dispatch2", + "libc", "objc2", ] @@ -5937,6 +5938,31 @@ dependencies = [ "objc2-foundation", ] +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-system-configuration" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" +dependencies = [ + "bitflags 2.10.0", + "dispatch2", + "libc", + "objc2", + "objc2-core-foundation", + "objc2-security", +] + [[package]] name = "objc2-ui-kit" version = "0.3.2" @@ -5972,15 +5998,6 @@ dependencies = [ "objc", ] -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "memchr", -] - [[package]] name = "oid-registry" version = "0.8.1" @@ -6172,6 +6189,16 @@ dependencies = [ "system-deps", ] +[[package]] +name = "papaya" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f92dd0b07c53a0a0c764db2ace8c541dc47320dad97c2200c2a637ab9dd2328f" +dependencies = [ + "equivalent", + "seize", +] + [[package]] name = "parking" version = "2.2.1" @@ -6512,9 +6539,9 @@ dependencies = [ [[package]] name = "pkcs8" -version = "0.11.0-rc.8" +version = "0.11.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77089aec8290d0b7bb01b671b091095cf1937670725af4fd73d47249f03b12c0" +checksum = "b226d2cc389763951db8869584fd800cbbe2962bf454e2edeb5172b31ee99774" dependencies = [ "der 0.8.0-rc.10", "spki 0.8.0-rc.4", @@ -6526,6 +6553,19 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64 0.22.1", + "indexmap 2.13.0", + "quick-xml", + "serde", + "time", +] + [[package]] name = "png" version = "0.17.16" @@ -6558,16 +6598,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" -[[package]] -name = "poly1305" -version = "0.9.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb78a635f75d76d856374961deecf61031c0b6f928c83dc9c0924ab6c019c298" -dependencies = [ - "cpufeatures", - "universal-hash", -] - [[package]] name = "portable-atomic" version = "1.13.0" @@ -6576,9 +6606,9 @@ checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" [[package]] name = "portmapper" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b575f975dcf03e258b0c7ab3f81497d7124f508884c37da66a7314aa2a8d467" +checksum = "f29fb522a166045a35b507dea30e3eb69bca1c5a53669d252744d5a0d8474ffa" dependencies = [ "base64 0.22.1", "bytes", @@ -6587,10 +6617,10 @@ dependencies = [ "futures-util", "hyper-util", "igd-next", - "iroh-metrics 0.37.0", + "iroh-metrics", "libc", "n0-error", - "netwatch", + "netwatch 0.13.0", "num_enum", "rand 0.9.2", "serde", @@ -7238,7 +7268,7 @@ dependencies = [ "cfg-if", "libc", "rustix", - "windows 0.61.3", + "windows 0.62.2", ] [[package]] @@ -7406,12 +7436,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -7494,9 +7518,9 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.5.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" dependencies = [ "core-foundation 0.10.1", "core-foundation-sys", @@ -7509,8 +7533,8 @@ dependencies = [ "rustls-webpki", "security-framework 3.5.1", "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", + "webpki-root-certs", + "windows-sys 0.61.2", ] [[package]] @@ -7542,16 +7566,6 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" -[[package]] -name = "salsa20" -version = "0.11.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3ff3b81c8a6e381bc1673768141383f9328048a60edddcfc752a8291a138443" -dependencies = [ - "cfg-if", - "cipher", -] - [[package]] name = "same-file" version = "1.0.6" @@ -7625,7 +7639,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "base16ct 0.2.0", + "base16ct", "der 0.7.10", "generic-array", "pkcs8 0.10.2", @@ -7678,6 +7692,16 @@ dependencies = [ "libc", ] +[[package]] +name = "seize" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "selectors" version = "0.24.0" @@ -7890,7 +7914,7 @@ version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.114", @@ -7924,16 +7948,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "serdect" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af4a3e75ebd5599b30d4de5768e00b5095d518a79fefc3ecbaf77e665d1ec06" -dependencies = [ - "base16ct 1.0.0", - "serde", -] - [[package]] name = "servo_arc" version = "0.2.0" @@ -7955,17 +7969,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha1" -version = "0.11.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e046edf639aa2e7afb285589e5405de2ef7e61d4b0ac1e30256e3eab911af9" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.11.0-rc.3", -] - [[package]] name = "sha1_smol" version = "1.0.1" @@ -8147,7 +8150,6 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" dependencies = [ - "backtrace", "snafu-derive", ] @@ -8157,7 +8159,7 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.114", @@ -8183,6 +8185,12 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "sorted-index-buffer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea06cc588e43c632923a55450401b8f25e628131571d4e1baea1bdfdb2b5ed06" + [[package]] name = "soup3" version = "0.5.0" @@ -8528,15 +8536,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -8609,7 +8608,9 @@ dependencies = [ "deranged", "itoa", "js-sys", + "libc", "num-conv", + "num_threads", "powerfmt", "serde_core", "time-core", @@ -8926,16 +8927,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-error" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" -dependencies = [ - "tracing", - "tracing-subscriber", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -9039,7 +9030,7 @@ dependencies = [ "native-tls", "rand 0.9.2", "rustls", - "sha1 0.10.6", + "sha1", "thiserror 2.0.17", "utf-8", ] @@ -9091,16 +9082,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "universal-hash" -version = "0.6.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55be643b40a21558f44806b53ee9319595bc7ca6896372e4e08e5d7d83c9cd6" -dependencies = [ - "crypto-common 0.2.0-rc.4", - "subtle", -] - [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -9185,6 +9166,54 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vergen" +version = "9.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", + "vergen-lib 9.1.0", +] + +[[package]] +name = "vergen-gitcl" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9dfc1de6eb2e08a4ddf152f1b179529638bedc0ea95e6d667c014506377aefe" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", + "time", + "vergen", + "vergen-lib 0.1.6", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + +[[package]] +name = "vergen-lib" +version = "9.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + [[package]] name = "version-compare" version = "0.2.1" @@ -9470,15 +9499,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "webpki-root-certs" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" -dependencies = [ - "webpki-root-certs 1.0.5", -] - [[package]] name = "webpki-root-certs" version = "1.0.5" @@ -10128,9 +10148,9 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "wmi" -version = "0.17.3" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120d8c2b6a7c96c27bf4a7947fd7f02d73ca7f5958b8bd72a696e46cb5521ee6" +checksum = "746791db82f029aaefc774ccbb8e61306edba18ef2c8998337cadccc0b8067f7" dependencies = [ "chrono", "futures", diff --git a/Cargo.toml b/Cargo.toml index 3f5fd12..6cc073a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ resolver = "2" [workspace.dependencies] -iroh-proxy-utils = { git = "https://github.com/n0-computer/iroh-proxy-utils", branch = "main" } +iroh-proxy-utils = { git = "https://github.com/n0-computer/iroh-proxy-utils", branch = "deps/iroh-096" } lib = { path = "lib" } arc-swap = "1.8.0" axum = "0.7" @@ -21,17 +21,16 @@ snafu = "0.8.6" hex = "0.4.3" hyper = "1" hyper-util = { version = "0.1.19", features = ["full"] } -iroh = { version = "0.95", default-features = false } -iroh-base = { version = "0.95" } -iroh-tickets = "0.2" +iroh = { version = "0.96", default-features = false } +iroh-relay = { version = "0.96", default-features = false } +iroh-base = { version = "0.96" } +iroh-tickets = "0.3" iroh-metrics = "0.38" -iroh-n0des = { version = "0.8", features = ["tickets"] } -iroh-relay = { version = "0.95" } +iroh-n0des = { version = "0.9", features = ["tickets"] } log = "0.4" open = "5" openidconnect = "4.0.1" postcard = "1" -quinn = { version = "0.14", package = "iroh-quinn" } rand = "0.9" reqwest = { version = "0.12", features = ["rustls-tls", "json"] } serde = { version = "1", features = ["derive"] } diff --git a/Dockerfile b/Dockerfile index 9fb60d9..dd42220 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.88-bookworm AS builder +FROM rust:1.93-bookworm AS builder WORKDIR /app diff --git a/cli/src/main.rs b/cli/src/main.rs index 131303e..b93867c 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -4,7 +4,7 @@ mod dns_dev; mod tunnel_dev; use lib::{ - Advertisment, AdvertismentTicket, ConnectNode, DiscoveryMode, ListenNode, ProxyState, Repo, + AddressLookupMode, Advertisment, AdvertismentTicket, ConnectNode, ListenNode, ProxyState, Repo, TcpProxyData, datum_cloud::{ApiEnv, DatumCloudClient}, }; @@ -150,7 +150,7 @@ pub struct ServeArgs { pub port: u16, /// Discovery mode for connection details. #[clap(long, value_enum)] - pub discovery: Option, + pub address_lookup: Option, /// DNS origin for _iroh.. lookups. #[clap(long)] pub dns_origin: Option, @@ -166,7 +166,7 @@ pub enum GatewayModeArg { } #[derive(Debug, Clone, Copy, ValueEnum)] -pub enum DiscoveryModeArg { +pub enum AddressLookupArg { Default, Dns, Hybrid, @@ -294,11 +294,11 @@ async fn main() -> n0_error::Result<()> { let bind_addr: SocketAddr = (args.bind_addr, args.port).into(); let secret_key = repo.gateway_key().await?; let mut config = repo.gateway_config().await?; - if let Some(discovery) = args.discovery { - config.common.discovery_mode = match discovery { - DiscoveryModeArg::Default => DiscoveryMode::Default, - DiscoveryModeArg::Dns => DiscoveryMode::Dns, - DiscoveryModeArg::Hybrid => DiscoveryMode::Hybrid, + if let Some(discovery) = args.address_lookup { + config.common.address_lookup = match discovery { + AddressLookupArg::Default => AddressLookupMode::Default, + AddressLookupArg::Dns => AddressLookupMode::Dns, + AddressLookupArg::Hybrid => AddressLookupMode::Hybrid, }; } if let Some(origin) = args.dns_origin { diff --git a/lib/Cargo.toml b/lib/Cargo.toml index beff143..07ebe29 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -26,7 +26,6 @@ n0-future.workspace = true open.workspace = true openidconnect.workspace = true postcard.workspace = true -quinn.workspace = true rand.workspace = true reqwest.workspace = true serde.workspace = true @@ -41,8 +40,6 @@ tracing-subscriber.workspace = true tracing.workspace = true url.workspace = true uuid.workspace = true -iroh-blobs = "0.97.0" -httparse = "1.10.1" ttl_cache = "0.5.1" askama = "0.15.1" k8s-openapi = { version = "0.26.1", features = ["v1_30"] } diff --git a/lib/src/config.rs b/lib/src/config.rs index 37217c0..f603b20 100644 --- a/lib/src/config.rs +++ b/lib/src/config.rs @@ -9,7 +9,7 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Copy, Serialize, Deserialize, Default)] #[serde(rename_all = "snake_case")] -pub enum DiscoveryMode { +pub enum AddressLookupMode { #[default] /// Use the built-in n0des discovery defaults. Default, @@ -36,7 +36,7 @@ pub struct Config { /// How the gateway resolves endpoint connection details. #[serde(default)] - pub discovery_mode: DiscoveryMode, + pub address_lookup: AddressLookupMode, /// DNS origin domain used for _iroh.. lookups. /// diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 42bfddc..3715757 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -10,7 +10,7 @@ mod repo; mod state; pub mod tunnels; -pub use config::{Config, DiscoveryMode, GatewayConfig}; +pub use config::{AddressLookupMode, Config, GatewayConfig}; pub use heartbeat::HeartbeatAgent; pub use node::*; pub use project_control_plane::ProjectControlPlaneClient; diff --git a/lib/src/node.rs b/lib/src/node.rs index 1546312..027d394 100644 --- a/lib/src/node.rs +++ b/lib/src/node.rs @@ -7,8 +7,8 @@ use std::{ }; use iroh::{ - Endpoint, EndpointId, SecretKey, discovery::dns::DnsDiscovery, endpoint::default_relay_mode, - protocol::Router, + Endpoint, EndpointId, SecretKey, address_lookup::dns::DnsAddressLookup, dns::DnsResolver, + endpoint::default_relay_mode, protocol::Router, }; use iroh_n0des::ApiSecret; use iroh_proxy_utils::{ALPN as IROH_HTTP_CONNECT_ALPN, HttpProxyRequest, HttpProxyRequestKind}; @@ -16,7 +16,7 @@ use iroh_proxy_utils::{ downstream::{DownstreamProxy, EndpointAuthority, ProxyMode}, upstream::{AuthError, AuthHandler, UpstreamProxy}, }; -use iroh_relay::dns::{DnsProtocol, DnsResolver}; +use iroh_relay::dns::DnsProtocol; use n0_error::{AnyError, Result, StackResultExt, StdResultExt, stack_error}; use n0_future::{IterExt, StreamExt, task::AbortOnDropHandle}; use tokio::{ @@ -95,10 +95,12 @@ impl ListenNode { async move { loop { let metrics = endpoint.metrics(); - let recv_total = metrics.magicsock.recv_data_ipv4.get() - + metrics.magicsock.recv_data_ipv6.get() - + metrics.magicsock.recv_data_relay.get(); - let send_total = metrics.magicsock.send_data.get(); + let recv_total = metrics.socket.recv_data_ipv4.get() + + metrics.socket.recv_data_ipv6.get() + + metrics.socket.recv_data_relay.get(); + let send_total = metrics.socket.send_ipv4.get() + + metrics.socket.send_ipv6.get() + + metrics.socket.send_relay.get(); let update = MetricsUpdate { send: send_total, recv: recv_total, @@ -448,23 +450,23 @@ impl OutboundProxyHandle { /// Build a new iroh endpoint, applying all relevant details from Configuration /// to the base endpoint setup pub(crate) async fn build_endpoint(secret_key: SecretKey, common: &Config) -> Result { - let mut builder = match common.discovery_mode { - crate::config::DiscoveryMode::Dns => { + let mut builder = match common.address_lookup { + crate::config::AddressLookupMode::Dns => { Endpoint::empty_builder(default_relay_mode()).secret_key(secret_key) } - crate::config::DiscoveryMode::Default | crate::config::DiscoveryMode::Hybrid => { + crate::config::AddressLookupMode::Default | crate::config::AddressLookupMode::Hybrid => { Endpoint::builder().secret_key(secret_key) } }; if let Some(addr) = common.ipv4_addr { - builder = builder.bind_addr_v4(addr); + builder = builder.bind_addr(addr)?; } if let Some(addr) = common.ipv6_addr { - builder = builder.bind_addr_v6(addr); + builder = builder.bind_addr(addr)?; } - match common.discovery_mode { - crate::config::DiscoveryMode::Default => {} - crate::config::DiscoveryMode::Dns | crate::config::DiscoveryMode::Hybrid => { + match common.address_lookup { + crate::config::AddressLookupMode::Default => {} + crate::config::AddressLookupMode::Dns | crate::config::AddressLookupMode::Hybrid => { let origin = match &common.dns_origin { Some(origin) => origin.clone(), None => n0_error::bail_any!( @@ -477,7 +479,7 @@ pub(crate) async fn build_endpoint(secret_key: SecretKey, common: &Config) -> Re .build(); builder = builder.dns_resolver(resolver); } - builder = builder.discovery(DnsDiscovery::builder(origin)); + builder = builder.address_lookup(DnsAddressLookup::builder(origin)); } } let endpoint = builder.bind().await?; diff --git a/lib/src/tests.rs b/lib/src/tests.rs index 1f12cf5..42b8961 100644 --- a/lib/src/tests.rs +++ b/lib/src/tests.rs @@ -3,7 +3,7 @@ use std::net::Ipv4Addr; use http_body_util::BodyExt; use hyper::{Request, StatusCode, client::conn::http2}; use hyper_util::rt::{TokioExecutor, TokioIo}; -use iroh::{Endpoint, discovery::static_provider::StaticProvider}; +use iroh::{Endpoint, address_lookup::MemoryLookup}; use n0_error::{Result, StdResultExt}; use n0_future::task::AbortOnDropHandle; use n0_tracing_test::traced_test; @@ -15,11 +15,11 @@ use tokio::{ use crate::{Advertisment, ListenNode, ProxyState, Repo, TcpProxyData, gateway}; #[derive(Default)] -struct TestDiscovery(StaticProvider); +struct TestAddressLookup(MemoryLookup); -impl TestDiscovery { +impl TestAddressLookup { fn add(&self, endpoint: &Endpoint) { - endpoint.discovery().add(self.0.clone()); + endpoint.address_lookup().add(self.0.clone()); self.0.add_endpoint_info(endpoint.addr()); } } @@ -27,7 +27,7 @@ impl TestDiscovery { #[tokio::test] #[traced_test] async fn gateway_end_to_end_to_upstream_http() -> Result<()> { - let discovery = TestDiscovery::default(); + let discovery = TestAddressLookup::default(); let n0des_endpoint = Endpoint::bind().await?; discovery.add(&n0des_endpoint); @@ -86,7 +86,7 @@ async fn gateway_end_to_end_to_upstream_http() -> Result<()> { #[tokio::test] #[traced_test] async fn gateway_forward_connect_tunnel() -> Result<()> { - let discovery = TestDiscovery::default(); + let discovery = TestAddressLookup::default(); let n0des_endpoint = Endpoint::bind().await?; discovery.add(&n0des_endpoint); @@ -158,7 +158,7 @@ async fn gateway_forward_connect_tunnel() -> Result<()> { #[tokio::test] #[traced_test] async fn gateway_forward_h2c_requests_are_stable() -> Result<()> { - let discovery = TestDiscovery::default(); + let discovery = TestAddressLookup::default(); let n0des_endpoint = Endpoint::bind().await?; discovery.add(&n0des_endpoint); @@ -234,7 +234,7 @@ async fn gateway_forward_h2c_requests_are_stable() -> Result<()> { #[tokio::test] #[traced_test] async fn gateway_forward_h2c_handles_closed_origin_connections() -> Result<()> { - let discovery = TestDiscovery::default(); + let discovery = TestAddressLookup::default(); let n0des_endpoint = Endpoint::bind().await?; discovery.add(&n0des_endpoint); diff --git a/n0des-local/Cargo.toml b/n0des-local/Cargo.toml index df9d2a5..f618866 100644 --- a/n0des-local/Cargo.toml +++ b/n0des-local/Cargo.toml @@ -7,8 +7,8 @@ publish = false [dependencies] iroh = { workspace = true } iroh-n0des = { workspace = true, features = ["tickets"] } -irpc = "0.11" -irpc-iroh = "0.11" +irpc = "0.12" +irpc-iroh = "0.12" n0-error = { workspace = true } rand = { workspace = true } tokio = { workspace = true } diff --git a/ui/Cargo.toml b/ui/Cargo.toml index 5f6345d..53c4384 100644 --- a/ui/Cargo.toml +++ b/ui/Cargo.toml @@ -28,7 +28,6 @@ iroh-metrics.workspace = true lib.workspace = true n0-future.workspace = true open.workspace = true -quinn.workspace = true rand.workspace = true tokio.workspace = true tokio-util.workspace = true