diff --git a/Cargo.lock b/Cargo.lock index c9e0149..84c2ddf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,13 +19,13 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" -version = "0.5.2" +version = "0.6.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +checksum = "ac8202ab55fcbf46ca829833f347a82a2a4ce0596f0304ac322c2d100030cd56" dependencies = [ "bytes", - "crypto-common", - "generic-array", + "crypto-common 0.2.0-rc.4", + "inout", ] [[package]] @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "base16ct" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +checksum = "d8b59d472eab27ade8d770dcb11da7201c11234bef9f82ce7aa517be028d462b" [[package]] name = "base32" @@ -294,6 +294,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.11.0-rc.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ef36a6fcdb072aa548f3da057640ec10859eb4e91ddf526ee648d50c76a949" +dependencies = [ + "hybrid-array", + "zeroize", +] + [[package]] name = "bounded-integer" version = "0.5.8" @@ -357,13 +367,14 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chacha20" -version = "0.9.1" +version = "0.10.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +checksum = "9bd162f2b8af3e0639d83f28a637e4e55657b7a74508dba5a9bf4da523d5c9e9" dependencies = [ "cfg-if", "cipher", "cpufeatures", + "zeroize", ] [[package]] @@ -382,11 +393,12 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.4" +version = "0.5.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "1e12a13eb01ded5d32ee9658d94f553a19e804204f2dc811df69ab4d9e0cb8c7" dependencies = [ - "crypto-common", + "block-buffer 0.11.0-rc.5", + "crypto-common 0.2.0-rc.4", "inout", "zeroize", ] @@ -482,9 +494,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.6" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "0dabb6555f92fb9ee4140454eb5dcd14c7960e1225c6d1a6cc361f032947713e" [[package]] name = "constant_time_eq" @@ -627,15 +639,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.0-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8235645834fbc6832939736ce2f2d08192652269e11010a6240f61b908a1c6" +dependencies = [ + "hybrid-array", + "rand_core 0.9.3", +] + [[package]] name = "crypto_box" -version = "0.9.1" +version = "0.10.0-pre.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009" +checksum = "2bda4de3e070830cf3a27a394de135b6709aefcc54d1e16f2f029271254a6ed9" dependencies = [ "aead", "chacha20", @@ -649,14 +670,14 @@ dependencies = [ [[package]] name = "crypto_secretbox" -version = "0.1.1" +version = "0.2.0-pre.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" +checksum = "54532aae6546084a52cef855593daf9555945719eeeda9974150e0def854873e" dependencies = [ "aead", "chacha20", "cipher", - "generic-array", + "hybrid-array", "poly1305", "salsa20", "subtle", @@ -665,16 +686,16 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.3" +version = "5.0.0-pre.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +checksum = "6f9200d1d13637f15a6acb71e758f64624048d85b31a5fdbfd8eca1e2687d0b7" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", - "digest", + "digest 0.11.0-rc.3", "fiat-crypto", - "rand_core 0.6.4", + "rand_core 0.9.3", "rustc_version", "serde", "subtle", @@ -700,9 +721,9 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "der" -version = "0.7.10" +version = "0.8.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +checksum = "e9d8dd2f26c86b27a2a8ea2767ec7f9df7a89516e4794e54ac01ee618dda3aa4" dependencies = [ "const-oid", "der_derive", @@ -712,9 +733,9 @@ dependencies = [ [[package]] name = "der_derive" -version = "0.7.3" +version = "0.8.0-rc.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +checksum = "be645fee2afe89d293b96c19e4456e6ac69520fc9c6b8a58298550138e361ffe" dependencies = [ "proc-macro2", "quote", @@ -785,11 +806,21 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "digest" +version = "0.11.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dac89f8a64533a9b0eaa73a68e424db0fb1fd6271c74cc0125336a05f090568d" +dependencies = [ + "block-buffer 0.11.0-rc.5", + "crypto-common 0.2.0-rc.4", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -841,9 +872,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ed25519" -version = "2.2.3" +version = "3.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +checksum = "9ef49c0b20c0ad088893ad2a790a29c06a012b3f05bcfc66661fd22a94b32129" dependencies = [ "pkcs8", "serde", @@ -852,15 +883,16 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.2.0" +version = "3.0.0-pre.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +checksum = "ad207ed88a133091f83224265eac21109930db09bedcad05d5252f2af2de20a1" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.6.4", + "rand_core 0.9.3", "serde", - "sha2", + "sha2 0.11.0-rc.2", + "signature", "subtle", "zeroize", ] @@ -945,9 +977,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fiat-crypto" -version = "0.2.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" [[package]] name = "find-msvc-tools" @@ -1144,7 +1176,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -1276,20 +1307,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" dependencies = [ "async-trait", + "bytes", "cfg-if", "data-encoding", "enum-as-inner", "futures-channel", "futures-io", "futures-util", + "h2", + "http", "idna", "ipnet", "once_cell", "rand 0.9.2", "ring", + "rustls", "thiserror 2.0.16", "tinyvec", "tokio", + "tokio-rustls", "tracing", "url", ] @@ -1309,9 +1345,11 @@ dependencies = [ "parking_lot", "rand 0.9.2", "resolv-conf", + "rustls", "smallvec", "thiserror 2.0.16", "tokio", + "tokio-rustls", "tracing", ] @@ -1321,7 +1359,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] @@ -1392,6 +1430,16 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hybrid-array" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f471e0a81b2f90ffc0cb2f951ae04da57de8baa46fa99112b062a5173a5088d0" +dependencies = [ + "typenum", + "zeroize", +] + [[package]] name = "hyper" version = "1.7.0" @@ -1633,11 +1681,11 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +checksum = "c7357b6e7aa75618c7864ebd0634b115a7218b0615f4cb1df33ac3eca23943d4" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -1702,9 +1750,9 @@ dependencies = [ [[package]] name = "iroh" -version = "0.92.0" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ad6b793a5851b9e5435ad36fea63df485f8fd4520a58117e7dc3326a69c15" +checksum = "50369f3db3f3fbc2cc14fc1baab2f3ee16e0abd89eca0b814258d02a6a13040c" dependencies = [ "aead", "backon", @@ -1736,8 +1784,9 @@ dependencies = [ "netwatch", "pin-project", "pkarr", + "pkcs8", "portmapper", - "rand 0.8.5", + "rand 0.9.2", "reqwest", "ring", "rustls", @@ -1746,7 +1795,6 @@ dependencies = [ "serde", "smallvec", "snafu", - "spki", "strum", "stun-rs", "surge-ping", @@ -1763,9 +1811,9 @@ dependencies = [ [[package]] name = "iroh-base" -version = "0.92.0" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ae51a14c9255a735b1db2d8cf29b875b971e96a5b23e4d0d1ee7d85bf32132" +checksum = "929fbe14046dfb01b41ccccaa5b476549924daa54438518bda11a9ab1598b2a9" dependencies = [ "curve25519-dalek", "data-encoding", @@ -1774,7 +1822,7 @@ dependencies = [ "n0-snafu", "nested_enum_utils", "postcard", - "rand_core 0.6.4", + "rand_core 0.9.3", "serde", "snafu", "url", @@ -1782,9 +1830,9 @@ dependencies = [ [[package]] name = "iroh-blobs" -version = "0.94.0" +version = "0.95.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1ebaa36eb3a36492c3b661bdd6eaf359f85def358c1c661d2d04edbe4ad5778" +checksum = "f437bfba05366e2e53e38b45eef254af0f14aa3dd8c8d1104e7a0669f7562fd4" dependencies = [ "anyhow", "arrayvec", @@ -1806,7 +1854,7 @@ dependencies = [ "n0-snafu", "nested_enum_utils", "postcard", - "rand 0.8.5", + "rand 0.9.2", "range-collections", "redb", "ref-cast", @@ -1835,13 +1883,14 @@ dependencies = [ [[package]] name = "iroh-metrics" -version = "0.35.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8922c169f1b84d39d325c02ef1bbe1419d4de6e35f0403462b3c7e60cc19634" +checksum = "090161e84532a0cb78ab13e70abb882b769ec67cf5a2d2dcea39bd002e1f7172" dependencies = [ "iroh-metrics-derive", "itoa", "postcard", + "ryu", "serde", "snafu", "tracing", @@ -1849,9 +1898,9 @@ dependencies = [ [[package]] name = "iroh-metrics-derive" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d12f5c45c4ed2436302a4e03cad9a0ad34b2962ad0c5791e1019c0ee30eeb09" +checksum = "8a39de3779d200dadde3a27b9fbdb34389a2af1b85ea445afca47bf4d7672573" dependencies = [ "heck", "proc-macro2", @@ -1916,9 +1965,9 @@ dependencies = [ [[package]] name = "iroh-relay" -version = "0.92.0" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "315cb02e660de0de339303296df9a29b27550180bb3979d0753a267649b34a7f" +checksum = "ffbc49e535c2cf410d19f82d46dac2b3d0bff1763759a28cd1c67870085f2fc4" dependencies = [ "blake3", "bytes", @@ -1935,7 +1984,7 @@ dependencies = [ "iroh-metrics", "iroh-quinn", "iroh-quinn-proto", - "lru", + "lru 0.16.1", "n0-future 0.1.3", "n0-snafu", "nested_enum_utils", @@ -1943,7 +1992,7 @@ dependencies = [ "pin-project", "pkarr", "postcard", - "rand 0.8.5", + "rand 0.9.2", "reqwest", "rustls", "rustls-pki-types", @@ -1966,9 +2015,9 @@ dependencies = [ [[package]] name = "irpc" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092c0b20697bbc7de4839eebcb49be975cc09221021626d301eea55fc10bfeb7" +checksum = "3e3fc4aa2bc2c1002655fab4254390f016f8b9bb65390600f9d8b11f9bdac76d" dependencies = [ "anyhow", "futures-buffered", @@ -1989,9 +2038,9 @@ dependencies = [ [[package]] name = "irpc-derive" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209d38d83c0f7043916e90de2d3a8d01035db3a2f49ea7d5fb41b8f43e889924" +checksum = "7f5706d47257e3f40b9e7dbc1934942b5792cc6a8670b7dda8856c2f5709cf98" dependencies = [ "proc-macro2", "quote", @@ -2106,6 +2155,12 @@ name = "lru" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" + +[[package]] +name = "lru" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe949189f46fabb938b3a9a0be30fdd93fd8a09260da863399a8cf3db756ec8" dependencies = [ "hashbrown", ] @@ -2524,12 +2579,6 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "openssl-probe" version = "0.1.6" @@ -2593,9 +2642,9 @@ dependencies = [ [[package]] name = "pem-rfc7468" -version = "0.7.0" +version = "1.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +checksum = "a8e58fab693c712c0d4e88f8eb3087b6521d060bcaf76aeb20cb192d809115ba" dependencies = [ "base64ct", ] @@ -2647,7 +2696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" dependencies = [ "pest", - "sha2", + "sha2 0.10.9", ] [[package]] @@ -2694,9 +2743,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkarr" -version = "3.10.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb1f2f4311bae1da11f930c804c724c9914cf55ae51a9ee0440fc98826984f7" +checksum = "792c1328860f6874e90e3b387b4929819cc7783a6bd5a4728e918706eb436a48" dependencies = [ "async-compat", "base32", @@ -2707,9 +2756,9 @@ dependencies = [ "ed25519-dalek", "futures-buffered", "futures-lite", - "getrandom 0.2.16", + "getrandom 0.3.3", "log", - "lru", + "lru 0.13.0", "ntimestamp", "reqwest", "self_cell", @@ -2725,9 +2774,9 @@ dependencies = [ [[package]] name = "pkcs8" -version = "0.10.2" +version = "0.11.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +checksum = "93eac55f10aceed84769df670ea4a32d2ffad7399400d41ee1c13b1cd8e1b478" dependencies = [ "der", "spki", @@ -2777,12 +2826,11 @@ dependencies = [ [[package]] name = "poly1305" -version = "0.8.0" +version = "0.9.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +checksum = "fb78a635f75d76d856374961deecf61031c0b6f928c83dc9c0924ab6c019c298" dependencies = [ "cpufeatures", - "opaque-debug", "universal-hash", ] @@ -2794,9 +2842,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portmapper" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f99e8cd25cd8ee09fc7da59357fd433c0a19272956ebb4ad7443b21842988d" +checksum = "90f7313cafd74e95e6a358c1d0a495112f175502cc2e69870d0a5b12b6553059" dependencies = [ "base64", "bytes", @@ -3133,9 +3181,9 @@ dependencies = [ [[package]] name = "redb" -version = "2.4.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0a72cd7140de9fc3e318823b883abf819c20d478ec89ce880466dc2ef263c6" +checksum = "8eca1e9d98d5a7e9002d0013e18d5a9b000aee942eb134883a82f06ebffb6c01" dependencies = [ "libc", ] @@ -3400,10 +3448,11 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "salsa20" -version = "0.10.2" +version = "0.11.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +checksum = "d3ff3b81c8a6e381bc1673768141383f9328048a60edddcfc752a8291a138443" dependencies = [ + "cfg-if", "cipher", ] @@ -3487,7 +3536,7 @@ dependencies = [ "console", "crossterm", "data-encoding", - "derive_more 1.0.0", + "derive_more 2.0.1", "duct", "futures-buffered", "hex", @@ -3499,7 +3548,7 @@ dependencies = [ "n0-future 0.1.3", "nix", "num_cpus", - "rand 0.8.5", + "rand 0.9.2", "serde", "serde_json", "tempfile", @@ -3577,9 +3626,9 @@ dependencies = [ [[package]] name = "serdect" -version = "0.2.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +checksum = "d3ef0e35b322ddfaecbc60f34ab448e157e48531288ee49fafbb053696b8ffe2" dependencies = [ "base16ct", "serde", @@ -3593,7 +3642,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", ] [[package]] @@ -3610,7 +3659,18 @@ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1e3878ab0f98e35b2df35fe53201d088299b41a6bb63e3e34dada2ac4abd924" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.11.0-rc.3", ] [[package]] @@ -3682,12 +3742,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.2.0" +version = "3.0.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "rand_core 0.6.4", -] +checksum = "fc280a6ff65c79fbd6622f64d7127f32b85563bca8c53cd2e9141d6744a9056d" [[package]] name = "simdutf8" @@ -3778,9 +3835,9 @@ checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" [[package]] name = "spki" -version = "0.7.3" +version = "0.8.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +checksum = "8baeff88f34ed0691978ec34440140e1572b68c7dd4a495fd14a3dc1944daa80" dependencies = [ "base64ct", "der", @@ -4362,11 +4419,11 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" -version = "0.5.1" +version = "0.6.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +checksum = "a55be643b40a21558f44806b53ee9319595bc7ca6896372e4e08e5d7d83c9cd6" dependencies = [ - "crypto-common", + "crypto-common 0.2.0-rc.4", "subtle", ] diff --git a/Cargo.toml b/Cargo.toml index f8c4e86..2621007 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,17 +17,17 @@ rust-version = "1.81" anyhow = "1.0.75" clap = { version = "4.4.10", features = ["derive"] } console = "0.15.7" -derive_more = { version = "1.0.0", features = [ +derive_more = { version = "2.0.1", features = [ "display", "from_str" ] } # I had some issues with futures-buffered 0.2.9 futures-buffered = "0.2.11" indicatif = "0.17.7" -iroh-blobs = { version = "0.94" } -iroh = "0.92" +iroh-blobs = { version = "0.95" } +iroh = "0.93" num_cpus = "1.16.0" -rand = "0.8.5" +rand = "0.9.2" serde = { version = "1", features = ["derive"] } tokio = { version = "1.34.0", features = ["full"] } tracing = "0.1.40" @@ -40,7 +40,7 @@ crossterm = { version = "0.29.0", features = [ "event-stream", "osc52", ], optional = true } -irpc = "0.8.0" +irpc = "0.9.0" [target.'cfg(unix)'.dependencies] libc = { version = "0.2.174", optional = true } @@ -51,7 +51,7 @@ windows-sys = { version = "0.59.0", features = ["Win32_System_Console"], optiona [dev-dependencies] duct = "0.13.6" nix = { version = "0.29", features = ["signal", "process"] } -rand = "0.8.5" +rand = "0.9.2" serde_json = "1.0.108" tempfile = "3.8.1" diff --git a/src/main.rs b/src/main.rs index eb02767..fdee664 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,7 +23,7 @@ use indicatif::{ }; use iroh::{ discovery::{dns::DnsDiscovery, pkarr::PkarrPublisher}, - Endpoint, NodeAddr, RelayMode, RelayUrl, SecretKey, Watcher, + Endpoint, NodeAddr, RelayMode, RelayUrl, SecretKey, }; use iroh_blobs::{ api::{ @@ -284,7 +284,7 @@ fn get_or_create_secret(print: bool) -> anyhow::Result { match std::env::var("IROH_SECRET") { Ok(secret) => SecretKey::from_str(&secret).context("invalid secret"), Err(_) => { - let key = SecretKey::generate(rand::rngs::OsRng); + let key = SecretKey::generate(&mut rand::rng()); if print { let key = hex::encode(key.to_bytes()); eprintln!("using secret key {key}"); @@ -448,7 +448,7 @@ async fn import( // we must also keep the tags around so the data does not get gced. let (collection, tags) = names_and_tags .into_iter() - .map(|(name, tag, _)| ((name, *tag.hash()), tag)) + .map(|(name, tag, _)| ((name, tag.hash()), tag)) .unzip::<_, _, Collection, Vec<_>>(); let temp_tag = collection.clone().store(db).await?; // now that the collection is stored, we can drop the tags @@ -592,7 +592,7 @@ async fn show_provide_progress( trace!("got event {item:?}"); match item { ProviderMessage::ClientConnectedNotify(msg) => { - let node_id = msg.node_id.map(|id| id.fmt_short()).unwrap_or_else(|| "?".to_string()); + let node_id = msg.node_id.map(|id| id.fmt_short().to_string()).unwrap_or_else(|| "?".to_string()); let connection_id = msg.connection_id; connections.lock().unwrap().insert( connection_id, @@ -650,7 +650,7 @@ async fn send(args: SendArgs) -> anyhow::Result<()> { } // use a flat store - todo: use a partial in mem store instead - let suffix = rand::thread_rng().r#gen::<[u8; 16]>(); + let suffix = rand::rng().random::<[u8; 16]>(); let cwd = std::env::current_dir()?; let blobs_data_dir = cwd.join(format!(".sendme-send-{}", HEXLOWER.encode(&suffix))); if blobs_data_dir.exists() { @@ -691,7 +691,6 @@ async fn send(args: SendArgs) -> anyhow::Result<()> { let store = FsStore::load(&blobs_data_dir2).await?; let blobs = BlobsProtocol::new( &store, - endpoint.clone(), Some(EventSender::new( progress_tx, EventMask { @@ -712,11 +711,8 @@ async fn send(args: SendArgs) -> anyhow::Result<()> { // wait for the endpoint to figure out its address before making a ticket let ep = router.endpoint(); tokio::time::timeout(Duration::from_secs(30), async move { - if matches!(relay_mode, RelayMode::Disabled) { - // no relay will arrive, as we disabled it, so wait for general init - let _ = ep.node_addr().initialized().await; - } else { - let _ = ep.home_relay().initialized().await; + if !matches!(relay_mode, RelayMode::Disabled) { + let _ = ep.online().await; } }) .await?; @@ -729,10 +725,10 @@ async fn send(args: SendArgs) -> anyhow::Result<()> { std::process::exit(130); } }; - let hash = *temp_tag.hash(); + let hash = temp_tag.hash(); // make a ticket - let mut addr = router.endpoint().node_addr().initialized().await; + let mut addr = router.endpoint().node_addr(); apply_options(&mut addr, args.ticket_type); let ticket = BlobTicket::new(addr, hash, BlobFormat::HashSeq); let entry_type = if path.is_file() { "file" } else { "directory" }; @@ -960,17 +956,28 @@ pub async fn show_download_progress( fn show_get_error(e: GetError) -> GetError { match &e { - GetError::NotFound { .. } => { - eprintln!("{}", style("send side no longer has a file").yellow()) + GetError::InitialNext { source, .. } => eprintln!( + "{}", + style(format!("initial connection error: {source}")).yellow() + ), + + GetError::ConnectedNext { source, .. } => { + eprintln!("{}", style(format!("connected error: {source}")).yellow()) } - GetError::RemoteReset { .. } => eprintln!("{}", style("remote reset").yellow()), - GetError::NoncompliantNode { .. } => { - eprintln!("{}", style("non-compliant remote").yellow()) + GetError::AtBlobHeaderNext { source, .. } => eprintln!( + "{}", + style(format!("reading blob header error: {source}")).yellow() + ), + GetError::Decode { source, .. } => { + eprintln!("{}", style(format!("decoding error: {source}")).yellow()) } - GetError::Io { source, .. } => eprintln!( + GetError::IrpcSend { source, .. } => eprintln!( "{}", - style(format!("generic network error: {source}")).yellow() + style(format!("error sending over irpc: {source}")).yellow() ), + GetError::AtClosingNext { source, .. } => { + eprintln!("{}", style(format!("error at closing: {source}")).yellow()) + } GetError::BadRequest { .. } => eprintln!("{}", style("bad request").yellow()), GetError::LocalFailure { source, .. } => { eprintln!("{} {source:?}", style("local failure").yellow())