From 31b6c5442f7763b8d15ea4e49875e7b66464df45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cramfox=E2=80=9D?= <“kasey@n0.computer”> Date: Mon, 26 Jan 2026 14:28:23 -0500 Subject: [PATCH 1/5] chore: depend on iroh-quinn latest --- Cargo.lock | 11 +++++------ Cargo.toml | 3 +++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0cd626fb..b0cac14e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -280,7 +280,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -781,14 +781,13 @@ dependencies = [ [[package]] name = "iroh-quinn-udp" version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91fe9ec3db6615d7ab1b303717f3b98fc40b96955a4ea25b113b1b879f7481f" +source = "git+https://github.com/n0-computer/quinn?branch=main#aa6c3735cee6d3074d5421a97b5e48332de8e7b3" dependencies = [ "cfg_aliases", "libc", "socket2", "tracing", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -1113,7 +1112,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2093,7 +2092,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 208c81e5..9e6d1eae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,3 +37,6 @@ unexpected_cfgs = { level = "warn", check-cfg = ["cfg(iroh_docsrs)"] } [workspace.lints.clippy] unused-async = "warn" + +[patch.crates-io] +iroh-quinn-udp = { git = "https://github.com/n0-computer/quinn", branch = "main" } From bf26d27447405c647cbdeb0b56a84c56cd75c024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cramfox=E2=80=9D?= <“kasey@n0.computer”> Date: Wed, 28 Jan 2026 11:15:00 -0500 Subject: [PATCH 2/5] chore: upgrade to `iroh-quinn-udp` 0.8 --- Cargo.lock | 13 +++++++------ Cargo.toml | 3 --- netwatch/Cargo.toml | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b0cac14e..301677f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -280,7 +280,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -780,14 +780,15 @@ dependencies = [ [[package]] name = "iroh-quinn-udp" -version = "0.7.0" -source = "git+https://github.com/n0-computer/quinn?branch=main#aa6c3735cee6d3074d5421a97b5e48332de8e7b3" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f981dadd5a072a9e0efcd24bdcc388e570073f7e51b33505ceb1ef4668c80c86" dependencies = [ "cfg_aliases", "libc", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1112,7 +1113,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2092,7 +2093,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9e6d1eae..208c81e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,6 +37,3 @@ unexpected_cfgs = { level = "warn", check-cfg = ["cfg(iroh_docsrs)"] } [workspace.lints.clippy] unused-async = "warn" - -[patch.crates-io] -iroh-quinn-udp = { git = "https://github.com/n0-computer/quinn", branch = "main" } diff --git a/netwatch/Cargo.toml b/netwatch/Cargo.toml index f895f0b4..d7129339 100644 --- a/netwatch/Cargo.toml +++ b/netwatch/Cargo.toml @@ -34,7 +34,7 @@ tracing = "0.1" # non-browser dependencies [target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies] -quinn-udp = { package = "iroh-quinn-udp", version = "0.7" } +quinn-udp = { package = "iroh-quinn-udp", version = "0.8" } libc = "0.2.139" netdev = "0.40.0" socket2 = { version = "0.6", features = ["all"] } From 83d1c6da461bd17e73e6934a8d8c27b3b16306e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cramfox=E2=80=9D?= <“kasey@n0.computer”> Date: Wed, 28 Jan 2026 11:22:09 -0500 Subject: [PATCH 3/5] chore: upgrade MSRV to 1.89 --- .github/workflows/ci.yaml | 2 +- netwatch/Cargo.toml | 2 +- portmapper/Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fe7c593a..b0edb096 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ env: RUST_BACKTRACE: 1 RUSTFLAGS: -Dwarnings RUSTDOCFLAGS: -Dwarnings - MSRV: "1.85" + MSRV: "1.89" SCCACHE_CACHE_SIZE: "10G" IROH_FORCE_STAGING_RELAYS: "1" diff --git a/netwatch/Cargo.toml b/netwatch/Cargo.toml index d7129339..bfcab446 100644 --- a/netwatch/Cargo.toml +++ b/netwatch/Cargo.toml @@ -10,7 +10,7 @@ keywords = ["networking", "interfaces"] edition = "2024" # Sadly this also needs to be updated in .github/workflows/ci.yml -rust-version = "1.85" +rust-version = "1.89" [lints] workspace = true diff --git a/portmapper/Cargo.toml b/portmapper/Cargo.toml index 4a9f24ef..0bbb83a6 100644 --- a/portmapper/Cargo.toml +++ b/portmapper/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/n0-computer/net-tools" keywords = ["portmapping", "pmp", "pcp", "upnp"] # Sadly this also needs to be updated in .github/workflows/ci.yml -rust-version = "1.85" +rust-version = "1.89" [lints] workspace = true From f9567b78e564f0943e5db085cccdfe0f788b388c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cramfox=E2=80=9D?= <“kasey@n0.computer”> Date: Wed, 28 Jan 2026 11:29:41 -0500 Subject: [PATCH 4/5] clippy --- netwatch/src/interfaces.rs | 8 +++--- netwatch/src/netmon/bsd.rs | 22 ++++++++--------- netwatch/src/udp.rs | 20 +++++++-------- portmapper/src/current_mapping.rs | 41 +++++++++++++++---------------- portmapper/src/lib.rs | 8 +++--- portmapper/src/upnp.rs | 19 +++++++------- 6 files changed, 57 insertions(+), 61 deletions(-) diff --git a/netwatch/src/interfaces.rs b/netwatch/src/interfaces.rs index f1552153..8d6448df 100644 --- a/netwatch/src/interfaces.rs +++ b/netwatch/src/interfaces.rs @@ -196,10 +196,10 @@ impl fmt::Display for State { ifaces.sort_by_key(|iface| iface.iface.index); for iface in ifaces { write!(f, "{iface}")?; - if let Some(ref default_if) = self.default_route_interface { - if iface.name() == default_if { - write!(f, " (default)")?; - } + if let Some(ref default_if) = self.default_route_interface + && iface.name() == default_if + { + write!(f, " (default)")?; } if f.alternate() { writeln!(f)?; diff --git a/netwatch/src/netmon/bsd.rs b/netwatch/src/netmon/bsd.rs index af016f3d..0c6e5aaf 100644 --- a/netwatch/src/netmon/bsd.rs +++ b/netwatch/src/netmon/bsd.rs @@ -92,23 +92,21 @@ pub(super) fn is_interesting_message(msg: &WireMessage) -> bool { WireMessage::InterfaceMulticastAddr(_) => true, WireMessage::Interface(_) => false, WireMessage::InterfaceAddr(msg) => { - if let Some(addr) = msg.addrs.get(RTAX_IFP as usize) { - if let Some(name) = addr.name() { - if !is_interesting_interface(name) { - return false; - } - } + if let Some(addr) = msg.addrs.get(RTAX_IFP as usize) + && let Some(name) = addr.name() + && !is_interesting_interface(name) + { + return false; } true } WireMessage::Route(msg) => { // Ignore local unicast - if let Some(addr) = msg.addrs.get(RTAX_DST as usize) { - if let Some(ip) = addr.ip() { - if is_link_local(ip) { - return false; - } - } + if let Some(addr) = msg.addrs.get(RTAX_DST as usize) + && let Some(ip) = addr.ip() + && is_link_local(ip) + { + return false; } true diff --git a/netwatch/src/udp.rs b/netwatch/src/udp.rs index e0bcc965..bbc1a8f7 100644 --- a/netwatch/src/udp.rs +++ b/netwatch/src/udp.rs @@ -841,16 +841,16 @@ impl SocketState { impl Drop for UdpSocket { fn drop(&mut self) { - if let Some((socket, _)) = self.socket.write().unwrap().close() { - if let Ok(handle) = tokio::runtime::Handle::try_current() { - // No wakeup after dropping write lock here, since we're getting dropped. - // this will be empty if `close` was called before - let std_sock = socket.into_std(); - handle.spawn_blocking(move || { - // Calls libc::close, which can block - drop(std_sock); - }); - } + if let Some((socket, _)) = self.socket.write().unwrap().close() + && let Ok(handle) = tokio::runtime::Handle::try_current() + { + // No wakeup after dropping write lock here, since we're getting dropped. + // this will be empty if `close` was called before + let std_sock = socket.into_std(); + handle.spawn_blocking(move || { + // Calls libc::close, which can block + drop(std_sock); + }); } } } diff --git a/portmapper/src/current_mapping.rs b/portmapper/src/current_mapping.rs index 84b82bd5..6cc4f854 100644 --- a/portmapper/src/current_mapping.rs +++ b/portmapper/src/current_mapping.rs @@ -135,28 +135,27 @@ impl CurrentMapping { deadline, expire_after, }) = &mut self.mapping + && deadline.as_mut().poll(cx).is_ready() { - if deadline.as_mut().poll(cx).is_ready() { - let (external_ip, external_port) = mapping.external(); - // check if the deadline means the mapping is expired or due for renewal - return if *expire_after { - trace!("mapping expired {mapping:?}"); - self.update(None); - Poll::Ready(Event::Expired { - external_ip, - external_port, - }) - } else { - // mapping is due for renewal - *deadline = Box::pin(time::sleep(mapping.half_lifetime())); - *expire_after = true; - trace!("due for renewal {mapping:?}"); - Poll::Ready(Event::Renew { - external_ip, - external_port, - }) - }; - } + let (external_ip, external_port) = mapping.external(); + // check if the deadline means the mapping is expired or due for renewal + return if *expire_after { + trace!("mapping expired {mapping:?}"); + self.update(None); + Poll::Ready(Event::Expired { + external_ip, + external_port, + }) + } else { + // mapping is due for renewal + *deadline = Box::pin(time::sleep(mapping.half_lifetime())); + *expire_after = true; + trace!("due for renewal {mapping:?}"); + Poll::Ready(Event::Renew { + external_ip, + external_port, + }) + }; } Poll::Pending } diff --git a/portmapper/src/lib.rs b/portmapper/src/lib.rs index 07b5ddef..7486830d 100644 --- a/portmapper/src/lib.rs +++ b/portmapper/src/lib.rs @@ -488,10 +488,10 @@ impl Service { /// Clears the current mapping and releases it. async fn invalidate_mapping(&mut self) { - if let Some(old_mapping) = self.current_mapping.update(None) { - if let Err(e) = old_mapping.release().await { - debug!("failed to release mapping {e}"); - } + if let Some(old_mapping) = self.current_mapping.update(None) + && let Err(e) = old_mapping.release().await + { + debug!("failed to release mapping {e}"); } } diff --git a/portmapper/src/upnp.rs b/portmapper/src/upnp.rs index 22cda586..ae69c98b 100644 --- a/portmapper/src/upnp.rs +++ b/portmapper/src/upnp.rs @@ -97,8 +97,8 @@ impl Mapping { // if we are trying to get a specific external port, try this first. If this fails, default // to try to get any port - if let Some(external_port) = preferred_port { - if gateway + if let Some(external_port) = preferred_port + && gateway .add_port( protocol, external_port.into(), @@ -108,14 +108,13 @@ impl Mapping { ) .await .is_ok() - { - return Ok(Mapping { - protocol, - gateway, - external_ip, - external_port, - }); - } + { + return Ok(Mapping { + protocol, + gateway, + external_ip, + external_port, + }); } let external_port = gateway From a54c04ff7261b63ed650c22bd85401b917f8e38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cramfox=E2=80=9D?= <“kasey@n0.computer”> Date: Wed, 28 Jan 2026 11:35:56 -0500 Subject: [PATCH 5/5] chore: update deps --- Cargo.lock | 148 ++++++++++++++++++++++++++++------------------------- 1 file changed, 78 insertions(+), 70 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 301677f4..d682458c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,9 +111,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.51" +version = "1.2.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583" dependencies = [ "find-msvc-tools", "shlex", @@ -133,9 +133,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "num-traits", @@ -291,9 +291,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" +checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" [[package]] name = "fnv" @@ -590,9 +590,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -753,9 +753,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iroh-metrics" -version = "0.38.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5828152c482cf9d95f3039848ac2be5e6e47c41dbf3695a453e6c02739c50d2c" +checksum = "c946095f060e6e59b9ff30cc26c75cdb758e7fb0cde8312c89e2144654989fcb" dependencies = [ "iroh-metrics-derive", "itoa", @@ -768,9 +768,9 @@ dependencies = [ [[package]] name = "iroh-metrics-derive" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e12bd0763fd16062f5cc5e8db15dd52d26e75a8af4c7fb57ccee3589b344b8" +checksum = "cab063c2bfd6c3d5a33a913d4fdb5252f140db29ec67c704f20f3da7e8f92dbf" dependencies = [ "heck", "proc-macro2", @@ -799,9 +799,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -821,9 +821,9 @@ checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "litemap" @@ -903,9 +903,9 @@ dependencies = [ [[package]] name = "n0-error" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d5969a2f40e9d9ed121a789c415f4114ac2b28e5731c080bdefee217d3b3fb" +checksum = "af4782b4baf92d686d161c15460c83d16ebcfd215918763903e9619842665cae" dependencies = [ "n0-error-macros", "spez", @@ -913,9 +913,9 @@ dependencies = [ [[package]] name = "n0-error-macros" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a6908df844696d9af91c7c3950d50e52d67df327d02a95367f95bbf177d6556" +checksum = "03755949235714b2b307e5ae89dd8c1c2531fb127d9b8b7b4adf9c876cd3ed18" dependencies = [ "proc-macro2", "quote", @@ -1025,12 +1025,12 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" +checksum = "cd6c30ed10fa69cc491d491b85cc971f6bdeb8e7367b7cde2ee6cc878d583fae" dependencies = [ "bytes", - "futures", + "futures-util", "libc", "log", "tokio", @@ -1118,9 +1118,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-traits" @@ -1360,9 +1360,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -1378,9 +1378,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -1413,9 +1413,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom", ] @@ -1573,9 +1573,9 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", "windows-sys 0.60.2", @@ -1654,18 +1654,18 @@ checksum = "614b328ff036a4ef882c61570f72918f7e9c5bee1da33f8e7f91e01daee7e56c" [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -1683,30 +1683,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "78cc610bac2dcee56805c99642447d4c5dbde4d01f752ffea0199aee1f601dc4" dependencies = [ "num-conv", "time-core", @@ -1943,18 +1943,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -1965,11 +1965,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -1978,9 +1979,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1988,9 +1989,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", @@ -2001,18 +2002,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-bindgen-test" -version = "0.3.56" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e90e66d265d3a1efc0e72a54809ab90b9c0c515915c67cdf658689d2c22c6c" +checksum = "45649196a53b0b7a15101d845d44d2dda7374fc1b5b5e2bbf58b7577ff4b346d" dependencies = [ "async-trait", "cast", @@ -2027,19 +2028,26 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-test-macro", + "wasm-bindgen-test-shared", ] [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.56" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7150335716dce6028bead2b848e72f47b45e7b9422f64cccdc23bedca89affc1" +checksum = "f579cdd0123ac74b94e1a4a72bd963cf30ebac343f2df347da0b8df24cdebed2" dependencies = [ "proc-macro2", "quote", "syn 2.0.114", ] +[[package]] +name = "wasm-bindgen-test-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8145dd1593bf0fb137dbfa85b8be79ec560a447298955877804640e40c2d6ea" + [[package]] name = "wasm-tracing" version = "2.1.0" @@ -2053,9 +2061,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -2379,9 +2387,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "wmi" @@ -2444,18 +2452,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.33" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" +checksum = "fdea86ddd5568519879b8187e1cf04e24fce28f7fe046ceecbce472ff19a2572" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.33" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" +checksum = "0c15e1b46eff7c6c91195752e0eeed8ef040e391cdece7c25376957d5f15df22" dependencies = [ "proc-macro2", "quote", @@ -2518,6 +2526,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.12" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" +checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"