diff --git a/Cargo.lock b/Cargo.lock index d3e05974..b6b45462 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,18 @@ version = 4 [[package]] name = "addr2line" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "gimli", ] [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -29,9 +29,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -59,9 +59,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -74,37 +74,37 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", - "once_cell", - "windows-sys 0.59.0", + "once_cell_polyfill", + "windows-sys 0.61.2", ] [[package]] @@ -118,9 +118,12 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e" +dependencies = [ + "rustversion", +] [[package]] name = "arrayvec" @@ -136,9 +139,9 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -146,17 +149,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "async-stream" version = "0.3.6" @@ -176,7 +168,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -187,13 +179,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -204,9 +196,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" @@ -306,11 +298,11 @@ checksum = "d18bc4e506fbb85ab7392ed993a7db4d1a452c71b75a246af4a80ab8c9d2dd50" dependencies = [ "assert_matches", "aya-obj", - "bitflags 2.9.0", + "bitflags 2.10.0", "bytes", "libc", "log", - "object", + "object 0.36.7", "once_cell", "thiserror 1.0.69", "tokio", @@ -340,29 +332,33 @@ dependencies = [ [[package]] name = "aya-ebpf-bindings" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "783dc1a82a3d71d83286165381dcc1b1d41643f4b110733d135547527c000a9a" +checksum = "71ee8e6a617f040d8da7565ec4010aea75e33cda4662f64c019c66ee97d17889" dependencies = [ + "aya-build", "aya-ebpf-cty", ] [[package]] name = "aya-ebpf-cty" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cce099aaf3abb89f9a1f8594ffe07fa53738ebc2882fac624d10d9ba31a1b10" +checksum = "e6f33396742e7fd0f519c1e0de5141d84e1a8df69146a557c08cc222b0ceace4" +dependencies = [ + "aya-build", +] [[package]] name = "aya-ebpf-macros" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f47f7b4a75eb5f1d7ba0fb5628d247b1cf20388658899177875dabdda66865" +checksum = "96fd02363736177e7e91d6c95d7effbca07be87502c7b5b32fc194aed8b177a0" dependencies = [ - "proc-macro-error", "proc-macro2", + "proc-macro2-diagnostics", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -390,9 +386,9 @@ dependencies = [ [[package]] name = "aya-log-ebpf" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae348f459df78a79e5cd5e164b6562b927033b97ca3b033605b341a474f44510" +checksum = "2a10bbadd0829895a91eb1cd2bb02d7af145704087f03812bed60cb9fe65dbb3" dependencies = [ "aya-ebpf", "aya-log-common", @@ -409,7 +405,7 @@ dependencies = [ "aya-log-parser", "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -429,25 +425,25 @@ checksum = "c51b96c5a8ed8705b40d655273bc4212cbbf38d4e3be2788f36306f154523ec7" dependencies = [ "bytes", "core-error", - "hashbrown 0.15.2", + "hashbrown 0.15.5", "log", - "object", + "object 0.36.7", "thiserror 1.0.69", ] [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.37.3", "rustc-demangle", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -476,9 +472,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "blake2" @@ -489,12 +485,6 @@ dependencies = [ "digest", ] -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - [[package]] name = "block-buffer" version = "0.10.4" @@ -504,11 +494,20 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", @@ -542,15 +541,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -566,28 +565,28 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "c2rust-bitfields" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367e5d1b30f28be590b6b3868da1578361d29d9bfac516d22f497d28ed7c9055" +checksum = "dcee50917f9de1a018e3f4f9a8f2ff3d030a288cffa4b18d9b391e97c12e4cfb" dependencies = [ "c2rust-bitfields-derive", ] [[package]] name = "c2rust-bitfields-derive" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a279db9c50c4024eeca1a763b6e0f033848ce74e83e47454bcf8a8a98f7b0b56" +checksum = "3b457277798202ccd365b9c112ebee08ddd57f1033916c8b8ea52f222e5b715d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -620,7 +619,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -631,18 +630,19 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.20" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ + "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -714,18 +714,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" dependencies = [ "anstream", "anstyle", @@ -735,45 +735,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" - -[[package]] -name = "cocoa" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad36507aeb7e16159dfe68db81ccc27571c3ccd4b76fb2fb72fc59e7a4b1b64c" -dependencies = [ - "bitflags 2.9.0", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics 0.24.0", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.2.0" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" -dependencies = [ - "bitflags 2.9.0", - "block", - "core-foundation", - "core-graphics-types", - "libc", - "objc", -] +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "concurrent-queue" @@ -894,26 +864,13 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core-graphics" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" -dependencies = [ - "bitflags 2.9.0", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - [[package]] name = "core-graphics" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "core-foundation", "core-graphics-types", "foreign-types", @@ -926,7 +883,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "core-foundation", "libc", ] @@ -942,9 +899,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -1059,15 +1016,15 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "rand_core 0.6.4", @@ -1097,7 +1054,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -1135,7 +1092,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -1144,14 +1101,14 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", ] @@ -1167,6 +1124,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.10.0", + "objc2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -1175,7 +1142,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -1193,14 +1160,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "env_filter" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" dependencies = [ "log", "regex", @@ -1233,12 +1200,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1252,9 +1219,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1294,7 +1261,7 @@ checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -1314,16 +1281,22 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" + [[package]] name = "flate2" version = "1.1.5" @@ -1364,7 +1337,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -1375,9 +1348,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1432,9 +1405,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "futures-core", "pin-project-lite", @@ -1448,7 +1421,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -1481,19 +1454,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generator" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" -dependencies = [ - "cfg-if", - "libc", - "log", - "rustversion", - "windows 0.58.0", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1512,32 +1472,32 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", ] [[package]] name = "gimli" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "h2" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75249d144030531f8dee69fe9cea04d3edf809a017ae445e2abdff6629e86633" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1545,7 +1505,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.9.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -1554,12 +1514,13 @@ dependencies = [ [[package]] name = "half" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "zerocopy", ] [[package]] @@ -1579,15 +1540,21 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + [[package]] name = "hdrhistogram" version = "7.5.4" @@ -1625,14 +1592,12 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hickory-proto" -version = "0.25.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d844af74f7b799e41c78221be863bade11c430d46042c3b49ca8ae0c6d27287" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" dependencies = [ - "async-recursion", "async-trait", "cfg-if", - "critical-section", "data-encoding", "enum-as-inner", "futures-channel", @@ -1644,7 +1609,7 @@ dependencies = [ "rand 0.9.2", "ring", "serde", - "thiserror 2.0.12", + "thiserror 2.0.17", "tinyvec", "tokio", "tracing", @@ -1667,7 +1632,7 @@ dependencies = [ "rand 0.9.2", "resolv-conf", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -1688,7 +1653,7 @@ dependencies = [ "ipnet", "prefix-trie", "serde", - "thiserror 2.0.12", + "thiserror 2.0.17", "time", "tokio", "tokio-util", @@ -1706,32 +1671,20 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "hostname" -version = "0.4.1" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "cfg-if", - "libc", - "windows-link 0.1.3", + "windows-sys 0.61.2", ] [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -1772,19 +1725,20 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "hyper" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", @@ -1792,6 +1746,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -1812,19 +1767,20 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", "libc", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.6.1", "tokio", "tower-service", "tracing", @@ -1832,21 +1788,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -1855,104 +1812,66 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", + "icu_locale_core", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -1961,9 +1880,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1995,19 +1914,22 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.16.1", ] [[package]] name = "indoc" -version = "2.0.6" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] [[package]] name = "inout" @@ -2036,9 +1958,9 @@ dependencies = [ [[package]] name = "inventory" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83" +checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" dependencies = [ "rustversion", ] @@ -2088,9 +2010,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -2112,39 +2034,39 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jiff" -version = "0.2.10" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a064218214dc6a10fbae5ec5fa888d80c45d611aba169222fc272072bf7aef6" +checksum = "a87d9b8105c23642f50cbbae03d1f75d8422c5cb98ce7ee9271f7ff7505be6b8" dependencies = [ "jiff-static", "log", "portable-atomic", "portable-atomic-util", - "serde", + "serde_core", ] [[package]] name = "jiff-static" -version = "0.2.10" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199b7932d97e325aff3a7030e141eafe7f2c6268e1d1b24859b753a627f45254" +checksum = "b787bebb543f8969132630c51fd0afab173a86c6abae56ff3b9e5e3e3f9f6e58" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -2158,29 +2080,29 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.178" +version = "0.2.179" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" [[package]] name = "libloading" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "libc", - "redox_syscall", + "redox_syscall 0.7.0", ] [[package]] @@ -2197,17 +2119,16 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] @@ -2217,19 +2138,6 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber", -] - [[package]] name = "lru_time_cache" version = "0.11.11" @@ -2243,15 +2151,6 @@ dependencies = [ "security-framework", ] -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - [[package]] name = "managed" version = "0.8.0" @@ -2260,11 +2159,11 @@ checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -2281,9 +2180,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memoffset" @@ -2308,9 +2207,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -2318,13 +2217,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -2344,10 +2243,9 @@ version = "0.13.0-dev" dependencies = [ "anyhow", "boringtun", - "cocoa", "console-subscriber 0.4.1", "core-foundation", - "core-graphics 0.25.0", + "core-graphics", "criterion 0.7.0", "data-encoding", "env_logger", @@ -2359,7 +2257,7 @@ dependencies = [ "log", "lru_time_cache", "nix 0.30.1", - "objc", + "objc2-app-kit", "pretty-hex", "prost 0.14.1", "rand 0.9.2", @@ -2471,28 +2369,26 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.10" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +checksum = "a3dec6bd31b08944e08b58fd99373893a6c17054d6f3ea5006cc894f4f4eee2a" dependencies = [ "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "loom", + "equivalent", "parking_lot", "portable-atomic", - "rustc_version", "smallvec", "tagptr", - "thiserror 1.0.69", "uuid", ] [[package]] name = "moxcms" -version = "0.7.5" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" +checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" dependencies = [ "num-traits", "pxfm", @@ -2516,7 +2412,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", "libc", @@ -2534,20 +2430,10 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" dependencies = [ - "overload", "winapi", ] @@ -2568,52 +2454,185 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] -name = "objc" -version = "0.2.7" +name = "objc2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" dependencies = [ - "malloc_buf", + "objc2-encode", ] [[package]] -name = "objc2-core-foundation" -version = "0.3.1" +name = "objc2-app-kit" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", + "block2", + "libc", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.10.0", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.10.0", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-core-foundation", ] [[package]] name = "objc2-io-kit" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ "libc", "objc2-core-foundation", ] +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.10.0", + "objc2", + "objc2-foundation", +] + [[package]] name = "object" version = "0.36.7" @@ -2621,8 +2640,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "crc32fast", - "hashbrown 0.15.2", - "indexmap 2.9.0", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "memchr", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ "memchr", ] @@ -2636,6 +2664,12 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + [[package]] name = "oorandom" version = "11.1.5" @@ -2648,12 +2682,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "page_size" version = "0.6.0" @@ -2672,9 +2700,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -2682,28 +2710,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project" @@ -2722,7 +2744,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -2782,7 +2804,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "crc32fast", "fdeflate", "flate2", @@ -2802,9 +2824,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" [[package]] name = "portable-atomic-util" @@ -2815,6 +2837,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -2846,29 +2877,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbc83ee4a840062f368f9096d80077a9841ec117e17e7f700df81958f1451254" -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -2888,18 +2896,30 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "version_check", +] + [[package]] name = "prost" version = "0.13.5" @@ -2930,7 +2950,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -2943,7 +2963,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -2982,7 +3002,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4aeaa1f2460f1d348eeaeed86aea999ce98c1bded6f089ff8514c9d9dbdc973" dependencies = [ "anyhow", - "indexmap 2.9.0", + "indexmap 2.12.1", "log", "protobuf", "protobuf-support", @@ -3002,9 +3022,9 @@ dependencies = [ [[package]] name = "pxfm" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84" +checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" dependencies = [ "num-traits", ] @@ -3051,7 +3071,7 @@ checksum = "ca31e43a0f205f2960208938135e37e579e61e10b36b4e7f49b0e8f60fab5b83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -3094,7 +3114,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -3107,7 +3127,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -3118,18 +3138,18 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -3187,14 +3207,14 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.4", ] [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -3202,9 +3222,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -3212,32 +3232,32 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", ] [[package]] -name = "regex" -version = "1.12.2" +name = "redox_syscall" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.13", - "regex-syntax 0.8.5", + "bitflags 2.10.0", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "regex" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ - "regex-syntax 0.6.29", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] @@ -3248,29 +3268,20 @@ checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "resolv-conf" -version = "0.7.1" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" -dependencies = [ - "hostname", -] +checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "ring" @@ -3288,13 +3299,11 @@ dependencies = [ [[package]] name = "rmp" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" dependencies = [ - "byteorder", "num-traits", - "paste", ] [[package]] @@ -3309,9 +3318,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc_version" @@ -3328,7 +3337,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -3341,7 +3350,7 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.11.0", @@ -3350,15 +3359,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "same-file" @@ -3369,12 +3378,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -3387,7 +3390,7 @@ version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "core-foundation", "core-foundation-sys", "libc", @@ -3406,11 +3409,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -3440,7 +3444,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -3449,7 +3453,7 @@ version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.12.1", "itoa", "memchr", "serde", @@ -3463,7 +3467,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.12.1", "itoa", "ryu", "serde", @@ -3487,33 +3491,31 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smoltcp" @@ -3553,9 +3555,9 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "streaming-iterator" @@ -3577,20 +3579,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "21f182278bf2d2bcb3c88b1b08a37df029d71ce3d3ae26168e3c653b213b99d4" dependencies = [ "proc-macro2", "quote", @@ -3605,13 +3596,13 @@ checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -3647,9 +3638,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.13.2" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" +checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" [[package]] name = "tempfile" @@ -3658,7 +3649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.4", "once_cell", "rustix 1.1.3", "windows-sys 0.61.2", @@ -3675,11 +3666,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -3690,28 +3681,27 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -3730,9 +3720,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "num-conv", @@ -3743,15 +3733,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -3769,9 +3759,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -3784,9 +3774,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", @@ -3807,7 +3797,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -3941,7 +3931,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.9.0", + "indexmap 2.12.1", "pin-project-lite", "slab", "sync_wrapper", @@ -3966,9 +3956,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3977,52 +3967,38 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", ] -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", - "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", - "smallvec", "thread_local", "tracing", "tracing-core", - "tracing-log", ] [[package]] @@ -4033,7 +4009,7 @@ checksum = "78f873475d258561b06f1c595d93308a7ed124d9977cb26b148c2084a4a3cc87" dependencies = [ "cc", "regex", - "regex-syntax 0.8.5", + "regex-syntax", "serde_json", "streaming-iterator", "tree-sitter-language", @@ -4057,7 +4033,7 @@ checksum = "adc5f880ad8d8f94e88cb81c3557024cf1a8b75e3b504c50481ed4f5a6006ff3" dependencies = [ "regex", "streaming-iterator", - "thiserror 2.0.12", + "thiserror 2.0.17", "tree-sitter", ] @@ -4073,9 +4049,9 @@ dependencies = [ [[package]] name = "tree-sitter-language" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8" +checksum = "4ae62f7eae5eb549c71b76658648b72cc6111f2d87d24a1e31fa907f4943e3ce" [[package]] name = "tree-sitter-xml" @@ -4117,7 +4093,7 @@ dependencies = [ "libc", "log", "nix 0.30.1", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tokio-util", "windows-sys 0.61.2", @@ -4126,15 +4102,15 @@ dependencies = [ [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unindent" @@ -4166,9 +4142,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -4176,12 +4152,6 @@ dependencies = [ "serde", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -4196,11 +4166,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.4", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -4236,50 +4208,37 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.101", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4287,31 +4246,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.101", - "wasm-bindgen-backend", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -4319,9 +4278,9 @@ dependencies = [ [[package]] name = "weezl" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "which" @@ -4348,9 +4307,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "winapi" @@ -4370,11 +4329,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4415,16 +4374,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.61.3" @@ -4432,7 +4381,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core 0.61.2", + "windows-core", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -4444,20 +4393,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core 0.61.2", -] - -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", + "windows-core", ] [[package]] @@ -4466,11 +4402,11 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "windows-result", + "windows-strings", ] [[package]] @@ -4479,22 +4415,11 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core 0.61.2", + "windows-core", "windows-link 0.1.3", "windows-threading", ] -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-implement" version = "0.60.2" @@ -4503,18 +4428,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", -] - -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -4525,7 +4439,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -4546,7 +4460,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core 0.61.2", + "windows-core", "windows-link 0.1.3", ] @@ -4567,15 +4481,6 @@ dependencies = [ "winres", ] -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-result" version = "0.3.4" @@ -4585,16 +4490,6 @@ dependencies = [ "windows-link 0.1.3", ] -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-strings" version = "0.4.2" @@ -4881,40 +4776,31 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] name = "wintun-bindings" -version = "0.7.31" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "605f50b13e12e1f9f99dc5e93701d779dbe47282fec186cb8a079165368d3124" +checksum = "27ae04d34b8569174e849128d2e36538329a27daa79c06ed0375f2c5d6704461" dependencies = [ "blocking", "c2rust-bitfields", "futures", "libloading", "log", - "thiserror 2.0.12", - "windows-sys 0.59.0", + "thiserror 2.0.17", + "windows-sys 0.61.2", "winreg 0.55.0", ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "write16" -version = "1.0.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "x25519-dalek" @@ -4930,9 +4816,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", "rustix 1.1.3", @@ -4940,11 +4826,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -4952,34 +4837,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] @@ -4999,35 +4884,46 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -5036,20 +4932,20 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn", ] [[package]] name = "zmij" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac060176f7020d62c3bcc1cdbcec619d54f48b07ad1963a3f80ce7a0c17755f" +checksum = "4ee2a72b10d087f75fb2e1c2c7343e308fe6970527c22a41caf8372e165ff5c1" [[package]] name = "zune-core" diff --git a/Cargo.toml b/Cargo.toml index 07eac710..7e525300 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,14 +31,14 @@ authors = [ version = "0.13.0-dev" publish = false repository = "https://github.com/mitmproxy/mitmproxy-rs" -edition = "2021" +edition = "2024" rust-version = "1.88" # MSRV [workspace.dependencies] aya = { version = "0.13.0", default-features = false } aya-ebpf = { version = "0.1.1", default-features = false } aya-log = { version = "0.2.1", default-features = false } -aya-log-ebpf = { version = "0.1.1", default-features = false } +aya-log-ebpf = { version = "0.1.0", default-features = false } tun = { version = "0.8.5" } [workspace.lints.clippy] @@ -97,8 +97,7 @@ security-framework = "3.2.0" nix = { version = "0.30.1", default-features = false, features = ["fs"] } core-graphics = "0.25" core-foundation = "0.10" -cocoa = "0.26" -objc = "0.2" +objc2-app-kit = { version = "0.3.2", features = ["NSRunningApplication", "NSImage", "libc"] } sysinfo = "0.36.1" [target.'cfg(target_os = "linux")'.dependencies] @@ -123,6 +122,3 @@ opt-level = 3 [features] tracing = ["console-subscriber"] -# This feature solely exists to silence warnings caused by objc 0.2.7, -# see https://github.com/SSheldon/rust-objc/issues/125 -cargo-clippy = [] \ No newline at end of file diff --git a/benches/process.rs b/benches/process.rs index cdbf39d8..61e54237 100755 --- a/benches/process.rs +++ b/benches/process.rs @@ -1,4 +1,4 @@ -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; #[cfg(any(windows, target_os = "macos"))] use mitmproxy::processes; diff --git a/mitmproxy-contentviews/benches/contentviews.rs b/mitmproxy-contentviews/benches/contentviews.rs index fd19b990..2f702156 100644 --- a/mitmproxy-contentviews/benches/contentviews.rs +++ b/mitmproxy-contentviews/benches/contentviews.rs @@ -1,5 +1,5 @@ -use criterion::{criterion_group, criterion_main, Criterion}; -use mitmproxy_contentviews::{test::TestMetadata, MsgPack, Prettify, Protobuf, Reencode}; +use criterion::{Criterion, criterion_group, criterion_main}; +use mitmproxy_contentviews::{MsgPack, Prettify, Protobuf, Reencode, test::TestMetadata}; use std::hint::black_box; fn criterion_benchmark(c: &mut Criterion) { diff --git a/mitmproxy-contentviews/src/hex_dump.rs b/mitmproxy-contentviews/src/hex_dump.rs index 616de19c..ff6c9fca 100644 --- a/mitmproxy-contentviews/src/hex_dump.rs +++ b/mitmproxy-contentviews/src/hex_dump.rs @@ -25,11 +25,7 @@ impl Prettify for HexDump { } fn render_priority(&self, data: &[u8], _metadata: &dyn Metadata) -> f32 { - if is_binary(data) { - 0.5 - } else { - 0.0 - } + if is_binary(data) { 0.5 } else { 0.0 } } } diff --git a/mitmproxy-contentviews/src/hex_stream.rs b/mitmproxy-contentviews/src/hex_stream.rs index 8a1b57e7..426ce082 100644 --- a/mitmproxy-contentviews/src/hex_stream.rs +++ b/mitmproxy-contentviews/src/hex_stream.rs @@ -27,11 +27,7 @@ impl Prettify for HexStream { } fn render_priority(&self, data: &[u8], _metadata: &dyn Metadata) -> f32 { - if is_binary(data) { - 0.4 - } else { - 0.0 - } + if is_binary(data) { 0.4 } else { 0.0 } } } diff --git a/mitmproxy-contentviews/src/lib.rs b/mitmproxy-contentviews/src/lib.rs index fb7834ff..f2ceb535 100644 --- a/mitmproxy-contentviews/src/lib.rs +++ b/mitmproxy-contentviews/src/lib.rs @@ -7,8 +7,8 @@ mod test_inspect_metadata; pub use hex_dump::HexDump; pub use hex_stream::HexStream; pub use msgpack::MsgPack; -pub use protobuf::Protobuf; pub use protobuf::GRPC; +pub use protobuf::Protobuf; pub use test_inspect_metadata::TestInspectMetadata; use anyhow::Result; diff --git a/mitmproxy-contentviews/src/protobuf/existing_proto_definitions.rs b/mitmproxy-contentviews/src/protobuf/existing_proto_definitions.rs index 6c8686e7..678e0f53 100644 --- a/mitmproxy-contentviews/src/protobuf/existing_proto_definitions.rs +++ b/mitmproxy-contentviews/src/protobuf/existing_proto_definitions.rs @@ -1,5 +1,5 @@ -use crate::protobuf::raw_to_proto::new_empty_descriptor; use crate::Metadata; +use crate::protobuf::raw_to_proto::new_empty_descriptor; use anyhow::Context; use protobuf::reflect::{FileDescriptor, MessageDescriptor}; use protobuf_parse::Parser; @@ -89,19 +89,19 @@ fn find_best_message( } let file = fds.first()?; - if let Some(service) = file.services().next() { - if let Some(method) = service.methods().next() { - log::info!( - "Falling back to first defined service in {}: {}", - file.name(), - service.proto().name() - ); - return Some(if is_request { - method.input_type() - } else { - method.output_type() - }); - } + if let Some(service) = file.services().next() + && let Some(method) = service.methods().next() + { + log::info!( + "Falling back to first defined service in {}: {}", + file.name(), + service.proto().name() + ); + return Some(if is_request { + method.input_type() + } else { + method.output_type() + }); } if let Some(method) = file.messages().next() { log::info!( diff --git a/mitmproxy-contentviews/src/protobuf/proto_to_yaml.rs b/mitmproxy-contentviews/src/protobuf/proto_to_yaml.rs index c6482c46..47111e29 100644 --- a/mitmproxy-contentviews/src/protobuf/proto_to_yaml.rs +++ b/mitmproxy-contentviews/src/protobuf/proto_to_yaml.rs @@ -1,11 +1,11 @@ use crate::protobuf::view_protobuf::tags; +use protobuf::MessageDyn; /// Parsed protobuf message => YAML value use protobuf::descriptor::field_descriptor_proto::Type; use protobuf::descriptor::field_descriptor_proto::Type::{ TYPE_BYTES, TYPE_FIXED32, TYPE_FIXED64, TYPE_UINT64, }; use protobuf::reflect::{ReflectFieldRef, ReflectValueRef}; -use protobuf::MessageDyn; use serde_yaml::value::TaggedValue; use serde_yaml::{Mapping, Number, Value}; use std::ops::Deref; diff --git a/mitmproxy-contentviews/src/protobuf/raw_to_proto.rs b/mitmproxy-contentviews/src/protobuf/raw_to_proto.rs index 6a38fbe6..d1538fbf 100644 --- a/mitmproxy-contentviews/src/protobuf/raw_to_proto.rs +++ b/mitmproxy-contentviews/src/protobuf/raw_to_proto.rs @@ -182,14 +182,13 @@ fn guess_field_type( parent.file_descriptor_proto().package.clone(), &format!("{}.UnknownField{}", parent.name_to_package(), field_index), ); - if let Ok(descriptor) = create_descriptor_proto(values[0], &existing) { - if values + if let Ok(descriptor) = create_descriptor_proto(values[0], &existing) + && values .iter() .skip(1) .all(|data| descriptor.descriptor_dyn().parse_from_bytes(data).is_ok()) - { - return GuessedFieldType::Message(Box::new(descriptor)); - } + { + return GuessedFieldType::Message(Box::new(descriptor)); } GuessedFieldType::Unknown diff --git a/mitmproxy-contentviews/src/protobuf/reencode.rs b/mitmproxy-contentviews/src/protobuf/reencode.rs index ea023009..6174462c 100644 --- a/mitmproxy-contentviews/src/protobuf/reencode.rs +++ b/mitmproxy-contentviews/src/protobuf/reencode.rs @@ -1,5 +1,5 @@ use crate::protobuf::view_protobuf::tags; -use anyhow::{bail, Context}; +use anyhow::{Context, bail}; use protobuf::descriptor::field_descriptor_proto::Type; use protobuf::descriptor::field_descriptor_proto::Type::{TYPE_FIXED32, TYPE_FIXED64}; use protobuf::reflect::{FieldDescriptor, MessageDescriptor, RuntimeFieldType, RuntimeType}; @@ -138,29 +138,29 @@ fn add_field(message: &mut dyn MessageDyn, field_num: u32, value: Value) -> anyh } fn int_value(n: Number, field: Option<&FieldDescriptor>) -> UnknownValue { - if let Some(field) = field { - if let Some(typ) = field.proto().type_.and_then(|t| t.enum_value().ok()) { - match typ { - TYPE_FIXED64 | Type::TYPE_SFIXED64 | Type::TYPE_DOUBLE => { - return if let Some(n) = n.as_u64() { - UnknownValue::Fixed64(n) - } else if let Some(n) = n.as_i64() { - UnknownValue::sfixed64(n) - } else { - UnknownValue::double(n.as_f64().expect("as_f64 never fails")) - } - } - TYPE_FIXED32 | Type::TYPE_SFIXED32 | Type::TYPE_FLOAT => { - return if let Some(n) = n.as_u64() { - UnknownValue::Fixed32(n as u32) - } else if let Some(n) = n.as_i64() { - UnknownValue::sfixed32(n as i32) - } else { - UnknownValue::float(n.as_f64().expect("as_f64 never fails") as f32) - } - } - _ => (), + if let Some(field) = field + && let Some(typ) = field.proto().type_.and_then(|t| t.enum_value().ok()) + { + match typ { + TYPE_FIXED64 | Type::TYPE_SFIXED64 | Type::TYPE_DOUBLE => { + return if let Some(n) = n.as_u64() { + UnknownValue::Fixed64(n) + } else if let Some(n) = n.as_i64() { + UnknownValue::sfixed64(n) + } else { + UnknownValue::double(n.as_f64().expect("as_f64 never fails")) + }; + } + TYPE_FIXED32 | Type::TYPE_SFIXED32 | Type::TYPE_FLOAT => { + return if let Some(n) = n.as_u64() { + UnknownValue::Fixed32(n as u32) + } else if let Some(n) = n.as_i64() { + UnknownValue::sfixed32(n as i32) + } else { + UnknownValue::float(n.as_f64().expect("as_f64 never fails") as f32) + }; } + _ => (), } } if let Some(n) = n.as_u64() { diff --git a/mitmproxy-contentviews/src/protobuf/view_grpc.rs b/mitmproxy-contentviews/src/protobuf/view_grpc.rs index efaf13f5..f67f495e 100644 --- a/mitmproxy-contentviews/src/protobuf/view_grpc.rs +++ b/mitmproxy-contentviews/src/protobuf/view_grpc.rs @@ -1,7 +1,7 @@ use super::{existing_proto_definitions, reencode}; use crate::protobuf::existing_proto_definitions::DescriptorWithDeps; use crate::{Metadata, Prettify, Protobuf, Reencode}; -use anyhow::{bail, Context, Result}; +use anyhow::{Context, Result, bail}; use flate2::read::{DeflateDecoder, GzDecoder}; use log::info; use mitmproxy_highlight::Language; @@ -23,10 +23,10 @@ impl Prettify for GRPC { fn prettify(&self, data: &[u8], metadata: &dyn Metadata) -> Result { let encoding = metadata.get_header("grpc-encoding").unwrap_or_default(); let proto_def = existing_proto_definitions::find_best_match(metadata)?; - if let Some(descriptor) = &proto_def { - if let Ok(ret) = self.prettify_with_descriptor(data, &encoding, descriptor) { - return Ok(ret); - } + if let Some(descriptor) = &proto_def + && let Ok(ret) = self.prettify_with_descriptor(data, &encoding, descriptor) + { + return Ok(ret); } let ret = self.prettify_with_descriptor(data, &encoding, &DescriptorWithDeps::default())?; if proto_def.is_some() { diff --git a/mitmproxy-contentviews/src/protobuf/view_protobuf.rs b/mitmproxy-contentviews/src/protobuf/view_protobuf.rs index b96f3388..4abd7979 100644 --- a/mitmproxy-contentviews/src/protobuf/view_protobuf.rs +++ b/mitmproxy-contentviews/src/protobuf/view_protobuf.rs @@ -40,10 +40,10 @@ impl Prettify for Protobuf { fn prettify(&self, data: &[u8], metadata: &dyn Metadata) -> Result { let proto_def = existing_proto_definitions::find_best_match(metadata)?; - if let Some(descriptor) = &proto_def { - if let Ok(ret) = self.prettify_with_descriptor(data, descriptor) { - return Ok(ret); - } + if let Some(descriptor) = &proto_def + && let Ok(ret) = self.prettify_with_descriptor(data, descriptor) + { + return Ok(ret); } let ret = self.prettify_with_descriptor(data, &DescriptorWithDeps::default())?; if proto_def.is_some() { @@ -202,7 +202,10 @@ mod tests { let result = Protobuf.prettify( b"\n\x13gRPC testing server\x12\x07\n\x05Index\x12\x07\n\x05Empty\x12\x0c\n\nDummyUnary\x12\x0f\n\rSpecificError\x12\r\n\x0bRandomError\x12\x0e\n\x0cHeadersUnary\x12\x11\n\x0fNoResponseUnary", &TestMetadata::default()).unwrap(); - assert_eq!(result, "1: gRPC testing server\n2:\n- 1: Index\n- 1: Empty\n- 1: DummyUnary\n- 1: SpecificError\n- 1: RandomError\n- 1: HeadersUnary\n- 1: NoResponseUnary\n"); + assert_eq!( + result, + "1: gRPC testing server\n2:\n- 1: Index\n- 1: Empty\n- 1: DummyUnary\n- 1: SpecificError\n- 1: RandomError\n- 1: HeadersUnary\n- 1: NoResponseUnary\n" + ); } #[test] diff --git a/mitmproxy-highlight/benches/syntax_highlight.rs b/mitmproxy-highlight/benches/syntax_highlight.rs index 7096c22f..7ef3079e 100644 --- a/mitmproxy-highlight/benches/syntax_highlight.rs +++ b/mitmproxy-highlight/benches/syntax_highlight.rs @@ -1,4 +1,4 @@ -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; use mitmproxy_highlight::Language; use std::hint::black_box; diff --git a/mitmproxy-highlight/src/css.rs b/mitmproxy-highlight/src/css.rs index 4f719975..50082903 100644 --- a/mitmproxy-highlight/src/css.rs +++ b/mitmproxy-highlight/src/css.rs @@ -1,4 +1,4 @@ -use super::{common, Chunk, Tag}; +use super::{Chunk, Tag, common}; use anyhow::Result; use std::sync::LazyLock; use tree_sitter_css::HIGHLIGHTS_QUERY; diff --git a/mitmproxy-highlight/src/javascript.rs b/mitmproxy-highlight/src/javascript.rs index 8f585d51..4704b868 100644 --- a/mitmproxy-highlight/src/javascript.rs +++ b/mitmproxy-highlight/src/javascript.rs @@ -1,4 +1,4 @@ -use super::{common, Chunk, Tag}; +use super::{Chunk, Tag, common}; use anyhow::Result; use std::sync::LazyLock; use tree_sitter_highlight::HighlightConfiguration; diff --git a/mitmproxy-linux-ebpf/src/main.rs b/mitmproxy-linux-ebpf/src/main.rs index 374ed7cc..2efe7598 100644 --- a/mitmproxy-linux-ebpf/src/main.rs +++ b/mitmproxy-linux-ebpf/src/main.rs @@ -1,14 +1,14 @@ #![no_std] #![no_main] +use aya_ebpf::EbpfContext; use aya_ebpf::macros::{cgroup_sock, map}; use aya_ebpf::maps::Array; use aya_ebpf::programs::SockContext; -use aya_ebpf::EbpfContext; use aya_log_ebpf::debug; use mitmproxy_linux_ebpf_common::{Action, INTERCEPT_CONF_LEN}; -#[no_mangle] +#[unsafe(no_mangle)] static INTERFACE_ID: u32 = 0; #[map] diff --git a/mitmproxy-linux/build.rs b/mitmproxy-linux/build.rs index c6924dc2..693f4f01 100644 --- a/mitmproxy-linux/build.rs +++ b/mitmproxy-linux/build.rs @@ -1,5 +1,5 @@ #[cfg(target_os = "linux")] -use anyhow::{anyhow, Context as _}; +use anyhow::{Context as _, anyhow}; #[cfg(target_os = "linux")] use aya_build::Toolchain; diff --git a/mitmproxy-rs/pytests/logger.rs b/mitmproxy-rs/pytests/logger.rs index a1bae5ac..17d88130 100644 --- a/mitmproxy-rs/pytests/logger.rs +++ b/mitmproxy-rs/pytests/logger.rs @@ -1,7 +1,7 @@ use log::{LevelFilter, Log, Metadata, Record}; use std::sync::LazyLock; use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender}; -use tokio::sync::{mpsc, Mutex, MutexGuard}; +use tokio::sync::{Mutex, MutexGuard, mpsc}; /// A logger for tests to ensure that log statements are made. pub struct TestLogger { diff --git a/mitmproxy-rs/pytests/test_task.rs b/mitmproxy-rs/pytests/test_task.rs index 9071092d..0c29d4be 100644 --- a/mitmproxy-rs/pytests/test_task.rs +++ b/mitmproxy-rs/pytests/test_task.rs @@ -47,11 +47,13 @@ mod tests { ) .await?; logger.wait_for("shutting down").await; - assert!(!logger - .logs() - .await - .into_iter() - .any(|l| l.contains("exception"))); + assert!( + !logger + .logs() + .await + .into_iter() + .any(|l| l.contains("exception")) + ); Ok(()) } diff --git a/mitmproxy-rs/src/dns_resolver.rs b/mitmproxy-rs/src/dns_resolver.rs index a367bf2f..fff0dd2c 100644 --- a/mitmproxy-rs/src/dns_resolver.rs +++ b/mitmproxy-rs/src/dns_resolver.rs @@ -1,4 +1,4 @@ -use mitmproxy::dns::{ResolveError, DNS_SERVERS}; +use mitmproxy::dns::{DNS_SERVERS, ResolveError}; use pyo3::exceptions::socket::gaierror; use pyo3::prelude::*; use pyo3::types::PyAny; diff --git a/mitmproxy-rs/src/lib.rs b/mitmproxy-rs/src/lib.rs index 81ae8444..6d698c73 100644 --- a/mitmproxy-rs/src/lib.rs +++ b/mitmproxy-rs/src/lib.rs @@ -47,31 +47,31 @@ mod mitmproxy_rs { #[pymodule] mod dns { #[pymodule_export] - use crate::dns_resolver::{get_system_dns_servers, DnsResolver}; + use crate::dns_resolver::{DnsResolver, get_system_dns_servers}; } #[pymodule] mod local { #[pymodule_export] - use crate::server::{start_local_redirector, LocalRedirector}; + use crate::server::{LocalRedirector, start_local_redirector}; } #[pymodule] mod process_info { #[pymodule_export] - use crate::process_info::{active_executables, executable_icon, Process}; + use crate::process_info::{Process, active_executables, executable_icon}; } #[pymodule] mod tun { #[pymodule_export] - use crate::server::{create_tun_interface, TunInterface}; + use crate::server::{TunInterface, create_tun_interface}; } #[pymodule] mod udp { #[pymodule_export] - use crate::server::{start_udp_server, UdpServer}; + use crate::server::{UdpServer, start_udp_server}; #[pymodule_export] use crate::udp_client::open_udp_connection; } @@ -79,7 +79,7 @@ mod mitmproxy_rs { #[pymodule] mod wireguard { #[pymodule_export] - use crate::server::{start_wireguard_server, WireGuardServer}; + use crate::server::{WireGuardServer, start_wireguard_server}; #[pymodule_export] use crate::util::{genkey, pubkey}; } @@ -92,7 +92,7 @@ mod mitmproxy_rs { #[pymodule_export] use crate::contentviews::InteractiveContentview; use mitmproxy_contentviews::{ - HexDump, HexStream, MsgPack, Protobuf, TestInspectMetadata, GRPC, + GRPC, HexDump, HexStream, MsgPack, Protobuf, TestInspectMetadata, }; #[pymodule_init] diff --git a/mitmproxy-rs/src/process_info.rs b/mitmproxy-rs/src/process_info.rs index 142b7909..b0009f21 100644 --- a/mitmproxy-rs/src/process_info.rs +++ b/mitmproxy-rs/src/process_info.rs @@ -2,9 +2,9 @@ use std::path::{Path, PathBuf}; #[cfg(any(windows, target_os = "macos"))] use anyhow::Context; -use pyo3::prelude::*; #[cfg(any(windows, target_os = "macos"))] use pyo3::IntoPyObjectExt; +use pyo3::prelude::*; #[cfg(any(windows, target_os = "macos", target_os = "linux"))] use mitmproxy::processes; diff --git a/mitmproxy-rs/src/server/local_redirector.rs b/mitmproxy-rs/src/server/local_redirector.rs index 2abec2cd..7384026f 100644 --- a/mitmproxy-rs/src/server/local_redirector.rs +++ b/mitmproxy-rs/src/server/local_redirector.rs @@ -137,7 +137,12 @@ pub fn start_local_redirector( } #[cfg(target_os = "macos")] { - let copy_task = macos::copy_redirector_app(&py)?; + let module_filename = py.import("mitmproxy_macos")?.filename()?; + let redirector_tar = std::path::Path::new(module_filename.to_str()?) + .parent() + .ok_or_else(|| anyhow::anyhow!("invalid path"))? + .join("Mitmproxy Redirector.app.tar"); + let copy_task = macos::copy_redirector_app(redirector_tar)?; let conf = MacosConf; pyo3_async_runtimes::tokio::future_into_py(py, async move { if let Some(copy_task) = copy_task { @@ -160,34 +165,26 @@ pub fn start_local_redirector( mod macos { use super::*; use anyhow::{Context, Result}; - use std::path::Path; + use std::path::{Path, PathBuf}; use std::{env, fs}; /// Ensure "Mitmproxy Redirector.app" is installed into /Applications and up-to-date. pub(super) fn copy_redirector_app( - py: &Python, + redirector_tar: PathBuf, ) -> PyResult Result<()>>> { if env::var_os("MITMPROXY_KEEP_REDIRECTOR").is_some_and(|x| x == "1") { log::info!("Using existing mitmproxy redirector app."); return Ok(None); } - let info_plist = Path::new("/Applications/Mitmproxy Redirector.app/Contents/Info.plist"); - let redirector_tar = { - let module_filename = py.import("mitmproxy_macos")?.filename()?; - let path = Path::new(module_filename.to_str()?) - .parent() - .ok_or_else(|| anyhow::anyhow!("invalid path"))? - .join("Mitmproxy Redirector.app.tar"); - if !path.exists() { - return Err(anyhow::anyhow!("{} does not exist", path.display()).into()); - } - path - }; + if !redirector_tar.exists() { + return Err(anyhow::anyhow!("{} does not exist", redirector_tar.display()).into()); + } let expected_mtime = fs::metadata(&redirector_tar) .and_then(|x| x.modified()) .context("failed to get mtime for redirector")?; + let info_plist = Path::new("/Applications/Mitmproxy Redirector.app/Contents/Info.plist"); if let Ok(actual_mtime) = fs::metadata(info_plist).and_then(|m| m.modified()) { if actual_mtime == expected_mtime { log::debug!("Existing mitmproxy redirector app is up-to-date."); diff --git a/mitmproxy-rs/src/server/mod.rs b/mitmproxy-rs/src/server/mod.rs index cfc29981..9d9ce10f 100644 --- a/mitmproxy-rs/src/server/mod.rs +++ b/mitmproxy-rs/src/server/mod.rs @@ -4,7 +4,7 @@ mod tun; mod udp; mod wireguard; -pub use local_redirector::{start_local_redirector, LocalRedirector}; -pub use tun::{create_tun_interface, TunInterface}; -pub use udp::{start_udp_server, UdpServer}; -pub use wireguard::{start_wireguard_server, WireGuardServer}; +pub use local_redirector::{LocalRedirector, start_local_redirector}; +pub use tun::{TunInterface, create_tun_interface}; +pub use udp::{UdpServer, start_udp_server}; +pub use wireguard::{WireGuardServer, start_wireguard_server}; diff --git a/mitmproxy-rs/src/stream.rs b/mitmproxy-rs/src/stream.rs index 50084afb..e9a226c5 100644 --- a/mitmproxy-rs/src/stream.rs +++ b/mitmproxy-rs/src/stream.rs @@ -1,7 +1,7 @@ use std::net::SocketAddr; use pyo3::exceptions::PyKeyError; -use pyo3::{exceptions::PyOSError, intern, prelude::*, IntoPyObjectExt}; +use pyo3::{IntoPyObjectExt, exceptions::PyOSError, intern, prelude::*}; use tokio::sync::{ mpsc::{self}, diff --git a/mitmproxy-rs/src/syntax_highlight.rs b/mitmproxy-rs/src/syntax_highlight.rs index d3326e96..3e3b66a4 100644 --- a/mitmproxy-rs/src/syntax_highlight.rs +++ b/mitmproxy-rs/src/syntax_highlight.rs @@ -1,5 +1,5 @@ #[allow(unused_imports)] -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use std::str::FromStr; use mitmproxy_highlight::{Language, Tag}; diff --git a/mitmproxy-rs/src/task.rs b/mitmproxy-rs/src/task.rs index 9231c16f..e233a4d6 100644 --- a/mitmproxy-rs/src/task.rs +++ b/mitmproxy-rs/src/task.rs @@ -5,7 +5,7 @@ use anyhow::{Context, Result}; use pyo3::exceptions::asyncio::CancelledError; use pyo3::prelude::*; use pyo3_async_runtimes::TaskLocals; -use tokio::sync::{mpsc, Mutex}; +use tokio::sync::{Mutex, mpsc}; use crate::stream::Stream; use crate::stream::StreamState; @@ -133,11 +133,11 @@ impl PyInteropTask { // Future is not finished: abort tokio task handle.abort(); - if let Err(err) = handle.await { - if !err.is_cancelled() { - // JoinError was not caused by cancellation: coroutine panicked, log error - log::error!("TCP connection handler coroutine panicked: {err}"); - } + if let Err(err) = handle.await + && !err.is_cancelled() + { + // JoinError was not caused by cancellation: coroutine panicked, log error + log::error!("TCP connection handler coroutine panicked: {err}"); } } } diff --git a/mitmproxy-rs/src/udp_client.rs b/mitmproxy-rs/src/udp_client.rs index 64cab7e2..4c791ea4 100644 --- a/mitmproxy-rs/src/udp_client.rs +++ b/mitmproxy-rs/src/udp_client.rs @@ -3,13 +3,13 @@ use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; use anyhow::Result; use pyo3::prelude::*; -use tokio::net::{lookup_host, UdpSocket}; -use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver}; +use tokio::net::{UdpSocket, lookup_host}; +use tokio::sync::mpsc::{UnboundedReceiver, unbounded_channel}; use tokio::sync::oneshot; use crate::stream::{Stream, StreamState}; -use mitmproxy::messages::{ConnectionId, TransportCommand, TunnelInfo}; use mitmproxy::MAX_PACKET_SIZE; +use mitmproxy::messages::{ConnectionId, TransportCommand, TunnelInfo}; use mitmproxy::packet_sources::udp::remote_host_closed_conn; diff --git a/mitmproxy-rs/src/util.rs b/mitmproxy-rs/src/util.rs index d5a5cfb7..c60218c0 100644 --- a/mitmproxy-rs/src/util.rs +++ b/mitmproxy-rs/src/util.rs @@ -1,11 +1,11 @@ #[allow(unused_imports)] -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use data_encoding::BASE64; #[cfg(target_os = "macos")] use mitmproxy::certificates; use pyo3::exceptions::PyOSError; -use pyo3::{exceptions::PyValueError, prelude::*, IntoPyObjectExt}; +use pyo3::{IntoPyObjectExt, exceptions::PyValueError, prelude::*}; use rand_core::OsRng; use std::net::SocketAddr; diff --git a/src/certificates/macos.rs b/src/certificates/macos.rs index 717b88cc..d09e3bf0 100644 --- a/src/certificates/macos.rs +++ b/src/certificates/macos.rs @@ -1,4 +1,4 @@ -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use security_framework::{ certificate::SecCertificate, item::{ diff --git a/src/dns.rs b/src/dns.rs index 25887edc..b000b51c 100644 --- a/src/dns.rs +++ b/src/dns.rs @@ -1,15 +1,15 @@ +pub use hickory_resolver::ResolveError; +use hickory_resolver::TokioResolver; use hickory_resolver::config::NameServerConfig; use hickory_resolver::config::ResolverConfig; use hickory_resolver::config::{LookupIpStrategy, ResolveHosts}; use hickory_resolver::lookup_ip::LookupIp; use hickory_resolver::name_server::TokioConnectionProvider; +use hickory_resolver::proto::ProtoError; pub use hickory_resolver::proto::op::Query; pub use hickory_resolver::proto::op::ResponseCode; use hickory_resolver::proto::xfer::Protocol; -use hickory_resolver::proto::ProtoError; use hickory_resolver::system_conf::read_system_conf; -pub use hickory_resolver::ResolveError; -use hickory_resolver::TokioResolver; use std::net::IpAddr; use std::net::SocketAddr; use std::sync::LazyLock; diff --git a/src/messages.rs b/src/messages.rs index 1e025c95..09102e4b 100755 --- a/src/messages.rs +++ b/src/messages.rs @@ -2,7 +2,7 @@ use std::fmt; use std::fmt::Formatter; use std::net::{IpAddr, SocketAddr}; -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use internet_packet::{InternetPacket, TransportProtocol}; use smoltcp::wire::{IpProtocol, Ipv4Packet, Ipv6Packet}; use tokio::sync::{mpsc, oneshot}; diff --git a/src/network/core.rs b/src/network/core.rs index 9888210e..1ca9469a 100644 --- a/src/network/core.rs +++ b/src/network/core.rs @@ -41,11 +41,11 @@ impl NetworkStack<'_> { } => (packet, tunnel_info), }; - if let SmolPacket::V4(p) = &packet { - if !p.verify_checksum() { - log::warn!("Received invalid IP packet (checksum error)."); - return Ok(()); - } + if let SmolPacket::V4(p) = &packet + && !p.verify_checksum() + { + log::warn!("Received invalid IP packet (checksum error)."); + return Ok(()); } match packet.transport_protocol() { @@ -92,14 +92,13 @@ impl NetworkStack<'_> { pub fn handle_transport_command(&mut self, command: TransportCommand) { if command.connection_id().is_tcp() { self.tcp.handle_transport_command(command); - } else if let Some(packet) = self.udp.handle_transport_command(command) { - if self + } else if let Some(packet) = self.udp.handle_transport_command(command) + && self .net_tx .try_send(NetworkCommand::SendPacket(SmolPacket::from(packet))) .is_err() - { - log::debug!("Channel unavailable, discarding UDP packet."); - } + { + log::debug!("Channel unavailable, discarding UDP packet."); } } diff --git a/src/network/mod.rs b/src/network/mod.rs index 66924e57..3a4f86e1 100755 --- a/src/network/mod.rs +++ b/src/network/mod.rs @@ -1,6 +1,6 @@ mod task; -pub use task::add_network_layer; pub use task::NetworkTask; +pub use task::add_network_layer; mod virtual_device; diff --git a/src/network/tcp.rs b/src/network/tcp.rs index 58b135c2..1a5d5f26 100644 --- a/src/network/tcp.rs +++ b/src/network/tcp.rs @@ -5,7 +5,7 @@ use std::{cmp, fmt}; use anyhow::Result; use pretty_hex::pretty_hex; use smoltcp::iface::{Config, SocketSet}; -use smoltcp::socket::{tcp, Socket}; +use smoltcp::socket::{Socket, tcp}; use smoltcp::wire::{HardwareAddress, Ipv6Address}; use smoltcp::{ iface::{Interface, SocketHandle}, @@ -291,7 +291,9 @@ impl TcpHandler<'_> { { for waiter in data.drain_waiter.drain(..) { if waiter.send(()).is_err() { - log::debug!("TcpStream already closed, cannot send notification about drained buffers.") + log::debug!( + "TcpStream already closed, cannot send notification about drained buffers." + ) } } } diff --git a/src/network/tests.rs b/src/network/tests.rs index 35ff3e2d..860603aa 100755 --- a/src/network/tests.rs +++ b/src/network/tests.rs @@ -5,7 +5,7 @@ use crate::messages::{ NetworkCommand, NetworkEvent, SmolPacket, TransportCommand, TransportEvent, TunnelInfo, }; use crate::shutdown; -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use core::net::Ipv4Addr; use core::net::Ipv6Addr; use internet_packet::InternetPacket; @@ -13,7 +13,7 @@ use smoltcp::{phy::ChecksumCapabilities, wire::*}; use tokio::sync::watch; use tokio::{ sync::{ - mpsc::{channel, unbounded_channel, Receiver, Sender, UnboundedSender}, + mpsc::{Receiver, Sender, UnboundedSender, channel, unbounded_channel}, oneshot, }, task::JoinHandle, diff --git a/src/network/virtual_device.rs b/src/network/virtual_device.rs index 3b41c5bb..fbf4dde9 100755 --- a/src/network/virtual_device.rs +++ b/src/network/virtual_device.rs @@ -43,12 +43,12 @@ impl Device for VirtualDevice { return None; } - if let Ok(permit) = self.tx_channel.try_reserve() { - if let Some(buffer) = self.rx_buffer.pop_front() { - let rx = Self::RxToken { buffer }; - let tx = VirtualTxToken { permit }; - return Some((rx, tx)); - } + if let Ok(permit) = self.tx_channel.try_reserve() + && let Some(buffer) = self.rx_buffer.pop_front() + { + let rx = Self::RxToken { buffer }; + let tx = VirtualTxToken { permit }; + return Some((rx, tx)); } None diff --git a/src/packet_sources/linux.rs b/src/packet_sources/linux.rs index 15727b44..fff263ae 100755 --- a/src/packet_sources/linux.rs +++ b/src/packet_sources/linux.rs @@ -1,5 +1,5 @@ -use anyhow::{bail, Context, Result}; -use log::{debug, error, log, Level}; +use anyhow::{Context, Result, bail}; +use log::{Level, debug, error, log}; use std::io::Error; use std::net::Shutdown; use std::path::{Path, PathBuf}; @@ -10,13 +10,13 @@ use std::task::Poll; use std::time::Duration; use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWrite, BufReader, ReadBuf}; use tokio::sync::mpsc::Sender; -use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; +use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender, unbounded_channel}; use crate::intercept_conf::InterceptConf; use crate::messages::{TransportCommand, TransportEvent}; -use crate::packet_sources::{forward_packets, PacketSourceConf, PacketSourceTask}; +use crate::packet_sources::{PacketSourceConf, PacketSourceTask, forward_packets}; use crate::shutdown; -use tempfile::{tempdir, TempDir}; +use tempfile::{TempDir, tempdir}; use tokio::net::UnixDatagram; use tokio::process::Command; use tokio::time::timeout; diff --git a/src/packet_sources/macos.rs b/src/packet_sources/macos.rs index 5b6bff7e..9c22b034 100644 --- a/src/packet_sources/macos.rs +++ b/src/packet_sources/macos.rs @@ -7,13 +7,13 @@ use crate::ipc; use crate::ipc::{NewFlow, TcpFlow, UdpFlow}; use crate::packet_sources::{PacketSourceConf, PacketSourceTask}; use crate::shutdown; -use anyhow::{bail, Context, Result}; +use anyhow::{Context, Result, bail}; use futures_util::SinkExt; use futures_util::StreamExt; +use prost::Message; use prost::bytes::Bytes; use prost::bytes::BytesMut; -use prost::Message; use std::process::Stdio; @@ -25,7 +25,7 @@ use tokio::net::{UnixListener, UnixStream}; use crate::network::udp::ConnectionState; use tokio::process::Command; use tokio::sync::mpsc::Sender; -use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; +use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender, unbounded_channel}; use tokio::sync::oneshot; use tokio::task::JoinSet; use tokio::time::timeout; @@ -338,11 +338,10 @@ impl ConnectionTask { let Ok(_) = self.stream.write_buf(&mut write_buf).await else { break; // Client has disconnected. }; - if write_buf.is_empty() { - if let Some(tx) = drain_tx.take() { + if write_buf.is_empty() + && let Some(tx) = drain_tx.take() { tx.send(()).ok(); } - } }, Ok(()) = self.stream.readable(), if read_tx.is_some() => { let (n, tx) = read_tx.take().unwrap(); diff --git a/src/packet_sources/mod.rs b/src/packet_sources/mod.rs index 53aea639..e8a7c273 100755 --- a/src/packet_sources/mod.rs +++ b/src/packet_sources/mod.rs @@ -4,10 +4,10 @@ use crate::messages::{ NetworkCommand, NetworkEvent, SmolPacket, TransportCommand, TransportEvent, TunnelInfo, }; use crate::network::add_network_layer; -use crate::{ipc, shutdown, MAX_PACKET_SIZE}; -use anyhow::{anyhow, Context, Result}; -use prost::bytes::Bytes; +use crate::{MAX_PACKET_SIZE, ipc, shutdown}; +use anyhow::{Context, Result, anyhow}; use prost::Message; +use prost::bytes::Bytes; use std::future::Future; use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; use tokio::sync::mpsc; diff --git a/src/packet_sources/tun.rs b/src/packet_sources/tun.rs index 347b4fb3..2d32160a 100644 --- a/src/packet_sources/tun.rs +++ b/src/packet_sources/tun.rs @@ -1,7 +1,7 @@ use crate::messages::{ NetworkCommand, NetworkEvent, SmolPacket, TransportCommand, TransportEvent, TunnelInfo, }; -use crate::network::{add_network_layer, MAX_PACKET_SIZE}; +use crate::network::{MAX_PACKET_SIZE, add_network_layer}; use crate::packet_sources::{PacketSourceConf, PacketSourceTask}; use crate::shutdown; use anyhow::{Context, Result}; diff --git a/src/packet_sources/udp.rs b/src/packet_sources/udp.rs index 66eb4003..a6c6b14b 100644 --- a/src/packet_sources/udp.rs +++ b/src/packet_sources/udp.rs @@ -3,8 +3,8 @@ use std::net::{Ipv4Addr, SocketAddr}; use anyhow::{Context, Result}; use crate::messages::{TransportCommand, TransportEvent, TunnelInfo}; -use crate::network::udp::{UdpHandler, UdpPacket}; use crate::network::MAX_PACKET_SIZE; +use crate::network::udp::{UdpHandler, UdpPacket}; use crate::packet_sources::{PacketSourceConf, PacketSourceTask}; use crate::shutdown; use socket2::{Domain, Protocol, Socket, Type}; diff --git a/src/packet_sources/windows.rs b/src/packet_sources/windows.rs index 84997cef..4023b15f 100755 --- a/src/packet_sources/windows.rs +++ b/src/packet_sources/windows.rs @@ -2,19 +2,19 @@ use std::iter; use std::os::windows::ffi::OsStrExt; use std::path::PathBuf; -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use tokio::net::windows::named_pipe::{NamedPipeServer, PipeMode, ServerOptions}; use tokio::sync::mpsc::Sender; -use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; -use windows::core::w; -use windows::core::PCWSTR; -use windows::Win32::UI::Shell::ShellExecuteW; +use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender, unbounded_channel}; use windows::Win32::UI::Shell::SE_ERR_ACCESSDENIED; +use windows::Win32::UI::Shell::ShellExecuteW; use windows::Win32::UI::WindowsAndMessaging::{SW_HIDE, SW_SHOWNORMAL}; +use windows::core::PCWSTR; +use windows::core::w; use crate::intercept_conf::InterceptConf; use crate::messages::{TransportCommand, TransportEvent}; -use crate::packet_sources::{forward_packets, PacketSourceConf, PacketSourceTask, IPC_BUF_SIZE}; +use crate::packet_sources::{IPC_BUF_SIZE, PacketSourceConf, PacketSourceTask, forward_packets}; use crate::shutdown; pub struct WindowsConf { diff --git a/src/packet_sources/wireguard.rs b/src/packet_sources/wireguard.rs index 4e0fe7a0..d7db19dd 100755 --- a/src/packet_sources/wireguard.rs +++ b/src/packet_sources/wireguard.rs @@ -5,11 +5,11 @@ use std::sync::Arc; use crate::messages::{ NetworkCommand, NetworkEvent, SmolPacket, TransportCommand, TransportEvent, TunnelInfo, }; -use crate::network::{add_network_layer, MAX_PACKET_SIZE}; +use crate::network::{MAX_PACKET_SIZE, add_network_layer}; use crate::packet_sources::{PacketSourceConf, PacketSourceTask}; -use anyhow::{anyhow, Context, Result}; +use anyhow::{Context, Result, anyhow}; use boringtun::noise::{ - errors::WireGuardError, handshake::parse_handshake_anon, Packet, Tunn, TunnResult, + Packet, Tunn, TunnResult, errors::WireGuardError, handshake::parse_handshake_anon, }; use boringtun::x25519::{PublicKey, StaticSecret}; use pretty_hex::pretty_hex; @@ -18,8 +18,8 @@ use tokio::sync::mpsc::UnboundedReceiver; use tokio::{ net::UdpSocket, sync::{ - mpsc::{Receiver, Sender}, Mutex, + mpsc::{Receiver, Sender}, }, }; diff --git a/src/processes/macos_icons.rs b/src/processes/macos_icons.rs index b5f6e7d0..7988c81c 100644 --- a/src/processes/macos_icons.rs +++ b/src/processes/macos_icons.rs @@ -1,9 +1,8 @@ -use anyhow::{bail, Result}; -use cocoa::base::id; -use objc::{class, msg_send, sel, sel_impl}; +use anyhow::{Result, bail}; +use objc2_app_kit::NSRunningApplication; +use std::collections::HashMap; use std::collections::hash_map::DefaultHasher; use std::collections::hash_map::Entry; -use std::collections::HashMap; use std::hash::{Hash, Hasher}; use std::io::Cursor; use std::path::Path; @@ -64,23 +63,15 @@ pub fn tiff_data_for_executable(executable: &Path) -> Result> { ); for (pid, process) in sys.processes() { // process.exe() will return empty path if there was an error while trying to read /proc//exe. - if let Some(path) = process.exe() { - if executable == path.to_path_buf() { - let pid = pid.as_u32(); - unsafe { - let app: id = msg_send![ - class!(NSRunningApplication), - runningApplicationWithProcessIdentifier: pid - ]; - if !app.is_null() { - let img: id = msg_send![app, icon]; - let tiff: id = msg_send![img, TIFFRepresentation]; - let length: usize = msg_send![tiff, length]; - let bytes: *const u8 = msg_send![tiff, bytes]; - let data = std::slice::from_raw_parts(bytes, length).to_vec(); - return Ok(data); - } - } + if let Some(path) = process.exe() + && executable == path.to_path_buf() + { + let pid = pid.as_u32() as i32; + if let Some(app) = NSRunningApplication::runningApplicationWithProcessIdentifier(pid) + && let Some(img) = app.icon() + && let Some(tiff) = img.TIFFRepresentation() + { + return Ok(tiff.to_vec()); } } } diff --git a/src/processes/nix_list.rs b/src/processes/nix_list.rs index 2ebe336f..b7de7548 100644 --- a/src/processes/nix_list.rs +++ b/src/processes/nix_list.rs @@ -87,9 +87,9 @@ fn is_system(process: &Process) -> bool { mod macos_visible_windows { use crate::intercept_conf::PID; use anyhow::Result; - use cocoa::base::nil; - use cocoa::foundation::NSString; - use core_foundation::number::{kCFNumberSInt32Type, CFNumberGetValue, CFNumberRef}; + use core_foundation::base::TCFType; + use core_foundation::number::{CFNumberGetValue, CFNumberRef, kCFNumberSInt32Type}; + use core_foundation::string::CFString; use core_graphics::display::{ CFArrayGetCount, CFArrayGetValueAtIndex, CFDictionaryGetValueIfPresent, CFDictionaryRef, CGWindowListCopyWindowInfo, @@ -111,12 +111,12 @@ mod macos_visible_windows { for i in 0..count - 1 { let dic_ref = CFArrayGetValueAtIndex(windows_info_list, i); - let key = NSString::alloc(nil).init_str("kCGWindowOwnerPID"); + let key = CFString::new("kCGWindowOwnerPID"); let mut pid: *const c_void = std::ptr::null_mut(); if CFDictionaryGetValueIfPresent( dic_ref as CFDictionaryRef, - key as *const c_void, + key.as_concrete_TypeRef() as *const c_void, &mut pid, ) != 0 { diff --git a/src/processes/windows_icons.rs b/src/processes/windows_icons.rs index ebf26931..44cc290f 100644 --- a/src/processes/windows_icons.rs +++ b/src/processes/windows_icons.rs @@ -1,5 +1,5 @@ -use std::collections::hash_map::{DefaultHasher, Entry}; use std::collections::HashMap; +use std::collections::hash_map::{DefaultHasher, Entry}; use std::hash::{Hash, Hasher}; use std::io::Cursor; @@ -9,12 +9,12 @@ use std::path::{Path, PathBuf}; use std::ptr::addr_of_mut; use std::{iter, mem}; -use anyhow::{bail, Result}; +use anyhow::{Result, bail}; use image::RgbaImage; use windows::Win32::Foundation::HMODULE; use windows::Win32::Graphics::Gdi::{ - DeleteObject, GetDC, GetDIBits, GetObjectW, ReleaseDC, BITMAP, BITMAPINFOHEADER, BI_RGB, - DIB_RGB_COLORS, HDC, + BI_RGB, BITMAP, BITMAPINFOHEADER, DIB_RGB_COLORS, DeleteObject, GetDC, GetDIBits, GetObjectW, + HDC, ReleaseDC, }; use windows::Win32::System::LibraryLoader::GetModuleHandleW; use windows::Win32::UI::Shell::ExtractAssociatedIconW; @@ -84,92 +84,96 @@ impl PixelData { } unsafe fn icon_for_executable(executable: &Path, hinst: HMODULE) -> Result { - let mut icon_path_u16: [u16; 128] = executable - .as_os_str() - .encode_wide() - .chain(iter::repeat(0)) - .take(128) - .collect::>() - .try_into() - .unwrap(); - let mut icon_idx = 0; - let icon = ExtractAssociatedIconW( - Some(hinst.into()), - &mut icon_path_u16, // XXX: [u16; 128] is weird. - &mut icon_idx, - ); - if icon.is_invalid() { - bail!("unable to extract icon"); - } + unsafe { + let mut icon_path_u16: [u16; 128] = executable + .as_os_str() + .encode_wide() + .chain(iter::repeat(0)) + .take(128) + .collect::>() + .try_into() + .unwrap(); + let mut icon_idx = 0; + let icon = ExtractAssociatedIconW( + Some(hinst.into()), + &mut icon_path_u16, // XXX: [u16; 128] is weird. + &mut icon_idx, + ); + if icon.is_invalid() { + bail!("unable to extract icon"); + } - let pixels = icon_to_pixels(icon); - DestroyIcon(icon)?; + let pixels = icon_to_pixels(icon); + DestroyIcon(icon)?; - Ok(pixels) + Ok(pixels) + } } /// adapted from https://users.rust-lang.org/t/how-to-convert-hicon-to-png/90975/10 unsafe fn icon_to_pixels(icon: HICON) -> PixelData { - let bitmap_size_i32 = i32::try_from(mem::size_of::()).unwrap(); - let biheader_size_u32 = u32::try_from(mem::size_of::()).unwrap(); - - let mut info = MaybeUninit::uninit(); - GetIconInfo(icon, info.as_mut_ptr()).unwrap(); - let info = info.assume_init_ref(); - DeleteObject(info.hbmMask.into()).unwrap(); - - let mut bitmap: MaybeUninit = MaybeUninit::uninit(); - let result = GetObjectW( - info.hbmColor.into(), - bitmap_size_i32, - Some(bitmap.as_mut_ptr().cast()), - ); - assert!(result == bitmap_size_i32); - let bitmap = bitmap.assume_init_ref(); - - let width_u32 = u32::try_from(bitmap.bmWidth).unwrap(); - let height_u32 = u32::try_from(bitmap.bmHeight).unwrap(); - let width_usize = usize::try_from(bitmap.bmWidth).unwrap(); - let height_usize = usize::try_from(bitmap.bmHeight).unwrap(); - let buf_size = width_usize.checked_mul(height_usize).unwrap(); - let mut buf: Vec = Vec::with_capacity(buf_size); - - let dc = GetDC(None); - assert!(dc != HDC(std::ptr::null_mut())); - - let mut bitmap_info = BITMAPINFOHEADER { - biSize: biheader_size_u32, - biWidth: bitmap.bmWidth, - biHeight: -bitmap.bmHeight, - biPlanes: 1, - biBitCount: 32, - biCompression: BI_RGB.0, - biSizeImage: 0, - biXPelsPerMeter: 0, - biYPelsPerMeter: 0, - biClrUsed: 0, - biClrImportant: 0, - }; - let result = GetDIBits( - dc, - info.hbmColor, - 0, - height_u32, - Some(buf.as_mut_ptr().cast()), - addr_of_mut!(bitmap_info).cast(), - DIB_RGB_COLORS, - ); - assert!(result == bitmap.bmHeight); - buf.set_len(buf.capacity()); - - let result = ReleaseDC(None, dc); - assert!(result == 1); - DeleteObject(info.hbmColor.into()).unwrap(); - - PixelData { - bgra: buf, - width: width_u32, - height: height_u32, + unsafe { + let bitmap_size_i32 = i32::try_from(mem::size_of::()).unwrap(); + let biheader_size_u32 = u32::try_from(mem::size_of::()).unwrap(); + + let mut info = MaybeUninit::uninit(); + GetIconInfo(icon, info.as_mut_ptr()).unwrap(); + let info = info.assume_init_ref(); + DeleteObject(info.hbmMask.into()).unwrap(); + + let mut bitmap: MaybeUninit = MaybeUninit::uninit(); + let result = GetObjectW( + info.hbmColor.into(), + bitmap_size_i32, + Some(bitmap.as_mut_ptr().cast()), + ); + assert!(result == bitmap_size_i32); + let bitmap = bitmap.assume_init_ref(); + + let width_u32 = u32::try_from(bitmap.bmWidth).unwrap(); + let height_u32 = u32::try_from(bitmap.bmHeight).unwrap(); + let width_usize = usize::try_from(bitmap.bmWidth).unwrap(); + let height_usize = usize::try_from(bitmap.bmHeight).unwrap(); + let buf_size = width_usize.checked_mul(height_usize).unwrap(); + let mut buf: Vec = Vec::with_capacity(buf_size); + + let dc = GetDC(None); + assert!(dc != HDC(std::ptr::null_mut())); + + let mut bitmap_info = BITMAPINFOHEADER { + biSize: biheader_size_u32, + biWidth: bitmap.bmWidth, + biHeight: -bitmap.bmHeight, + biPlanes: 1, + biBitCount: 32, + biCompression: BI_RGB.0, + biSizeImage: 0, + biXPelsPerMeter: 0, + biYPelsPerMeter: 0, + biClrUsed: 0, + biClrImportant: 0, + }; + let result = GetDIBits( + dc, + info.hbmColor, + 0, + height_u32, + Some(buf.as_mut_ptr().cast()), + addr_of_mut!(bitmap_info).cast(), + DIB_RGB_COLORS, + ); + assert!(result == bitmap.bmHeight); + buf.set_len(buf.capacity()); + + let result = ReleaseDC(None, dc); + assert!(result == 1); + DeleteObject(info.hbmColor.into()).unwrap(); + + PixelData { + bgra: buf, + width: width_u32, + height: height_u32, + } } } diff --git a/src/processes/windows_list.rs b/src/processes/windows_list.rs index 746ec50d..86ffb3d3 100644 --- a/src/processes/windows_list.rs +++ b/src/processes/windows_list.rs @@ -7,22 +7,22 @@ use std::os::windows::prelude::{OsStrExt, OsStringExt}; use std::path::{Path, PathBuf}; use std::sync::{LazyLock, Mutex}; -use anyhow::{anyhow, Result}; -use windows::core::w; -use windows::core::{BOOL, PCWSTR, PWSTR}; +use anyhow::{Result, anyhow}; use windows::Win32::Foundation::{CloseHandle, HANDLE, HWND, LPARAM, MAX_PATH}; -use windows::Win32::Graphics::Dwm::{DwmGetWindowAttribute, DWMWA_CLOAKED}; +use windows::Win32::Graphics::Dwm::{DWMWA_CLOAKED, DwmGetWindowAttribute}; use windows::Win32::Storage::FileSystem::{ GetFileVersionInfoSizeW, GetFileVersionInfoW, VerQueryValueW, }; use windows::Win32::System::ProcessStatus::EnumProcesses; use windows::Win32::System::Threading::{ - IsProcessCritical, OpenProcess, QueryFullProcessImageNameW, PROCESS_NAME_NATIVE, - PROCESS_NAME_WIN32, PROCESS_QUERY_LIMITED_INFORMATION, + IsProcessCritical, OpenProcess, PROCESS_NAME_NATIVE, PROCESS_NAME_WIN32, + PROCESS_QUERY_LIMITED_INFORMATION, QueryFullProcessImageNameW, }; use windows::Win32::UI::WindowsAndMessaging::{ EnumWindows, GetWindowThreadProcessId, IsIconic, IsWindowVisible, }; +use windows::core::w; +use windows::core::{BOOL, PCWSTR, PWSTR}; use crate::intercept_conf::PID; use crate::processes::{ProcessInfo, ProcessList}; @@ -37,11 +37,12 @@ pub fn get_process_name(pid: PID) -> Result { } unsafe fn process_name(handle: HANDLE) -> Result { - let mut buffer = Vec::with_capacity(MAX_PATH as usize); - let path = PWSTR(buffer.as_mut_ptr()); - let mut len = buffer.capacity() as u32; + unsafe { + let mut buffer = Vec::with_capacity(MAX_PATH as usize); + let path = PWSTR(buffer.as_mut_ptr()); + let mut len = buffer.capacity() as u32; - QueryFullProcessImageNameW(handle, PROCESS_NAME_WIN32, path, &mut len).or_else(|_| + QueryFullProcessImageNameW(handle, PROCESS_NAME_WIN32, path, &mut len).or_else(|_| // WSL wants PROCESS_NAME_NATIVE, see https://github.com/microsoft/WSL/issues/3478 QueryFullProcessImageNameW( handle, @@ -49,7 +50,8 @@ unsafe fn process_name(handle: HANDLE) -> Result { path, &mut len, ))?; - Ok(PathBuf::from(OsString::from_wide(path.as_wide()))) + Ok(PathBuf::from(OsString::from_wide(path.as_wide()))) + } } pub fn get_is_critical(pid: PID) -> Result { @@ -62,9 +64,11 @@ pub fn get_is_critical(pid: PID) -> Result { } unsafe fn is_critical(handle: HANDLE) -> Result { - let mut is_critical = BOOL::default(); - IsProcessCritical(handle, &mut is_critical)?; // we're ok if this fails. - Ok(is_critical.as_bool()) + unsafe { + let mut is_critical = BOOL::default(); + IsProcessCritical(handle, &mut is_critical)?; // we're ok if this fails. + Ok(is_critical.as_bool()) + } } pub fn enumerate_pids() -> Result> { diff --git a/src/windows/network.rs b/src/windows/network.rs index c9aa2f35..e0569b0a 100644 --- a/src/windows/network.rs +++ b/src/windows/network.rs @@ -1,4 +1,4 @@ -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr}; use windows::Win32::Foundation::{ERROR_INSUFFICIENT_BUFFER, NO_ERROR}; use windows::Win32::NetworkManagement::IpHelper::{ diff --git a/wireguard-test-client/src/main.rs b/wireguard-test-client/src/main.rs index 97dd7304..41df3962 100755 --- a/wireguard-test-client/src/main.rs +++ b/wireguard-test-client/src/main.rs @@ -3,7 +3,7 @@ use std::net::{IpAddr, SocketAddr, UdpSocket}; use std::str::FromStr; use std::time::Duration; -use anyhow::{bail, Result}; +use anyhow::{Result, bail}; use boringtun::noise::{Tunn, TunnResult}; use boringtun::x25519::{PublicKey, StaticSecret}; use data_encoding::BASE64;