diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 6eca39f..e78f66c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -29,8 +29,8 @@ env: RUST_BACKTRACE: "1" RUSTFLAGS: "-D warnings" LLVM_CONFIG_PATH: llvm-config-18 - RUST_STABLE_TOOLCHAIN: "1.65" - RUST_NIGHTLY_TOOLCHAIN: "nightly-2023-07-12" + RUST_STABLE_TOOLCHAIN: "1.85" + RUST_NIGHTLY_TOOLCHAIN: "nightly-2025-03-18" jobs: required: @@ -125,6 +125,7 @@ jobs: - name: Setup php-fpm for Linux if: matrix.os == 'ubuntu-24.04' run: | + sudo apt-get update sudo apt-get install -y php${{ matrix.flag.php_version }}-fpm sudo ln -sf /usr/sbin/php-fpm${{ matrix.flag.php_version }} /usr/sbin/php-fpm diff --git a/Cargo.lock b/Cargo.lock index e15103c..f27fdb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,27 +1,27 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.20.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -43,67 +43,68 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "1.0.2" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" dependencies = [ "backtrace", ] [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -112,48 +113,83 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a1de45611fdb535bfde7b7de4fd54f4fd2b17b1737c0a59b69bf9b92074b8c" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.3.4", "bitflags 1.3.2", "bytes", "futures-util", - "http", - "http-body", - "hyper", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tower 0.4.13", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d6fd624c75e18b3b4c6b9caf42b1afe24437daaee904069137d8bab077be8b8" +dependencies = [ + "axum-core 0.5.0", + "bytes", + "form_urlencoded", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-util", "itoa", - "matchit", + "matchit 0.8.4", "memchr", "mime", "percent-encoding", @@ -163,11 +199,12 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.2", "tokio", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -179,27 +216,47 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1362f362fd16024ae199c1970ce98f9661bf5ef94b9808fee734bc3698b733" +dependencies = [ + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -210,39 +267,54 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bincode" -version = "1.3.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ + "bincode_derive", "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", ] [[package]] name = "bindgen" -version = "0.63.0" +version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "cexpr", "clang-sys", - "lazy_static", - "lazycell", + "itertools 0.13.0", "log", - "peeking_take_while", + "prettyplease 0.2.31", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 1.0.109", - "which", + "syn 2.0.100", ] [[package]] @@ -253,9 +325,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block-buffer" @@ -268,9 +340,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.6.0" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", "serde", @@ -278,29 +350,29 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytes" -version = "1.4.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bytesize" -version = "1.2.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" +checksum = "2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e" [[package]] name = "cc" -version = "1.0.80" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f1226cd9da55587234753d1245dd5b132343ea240f26b6a9003d68706141ba" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ - "libc", + "shlex", ] [[package]] @@ -320,21 +392,21 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "winapi", + "windows-link", ] [[package]] name = "chrono-tz" -version = "0.6.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552" +checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" dependencies = [ "chrono", "chrono-tz-build", @@ -343,9 +415,9 @@ dependencies = [ [[package]] name = "chrono-tz-build" -version = "0.0.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069" +checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" dependencies = [ "parse-zoneinfo", "phf", @@ -354,9 +426,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -365,20 +437,19 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.24" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", "clap_derive", - "once_cell", ] [[package]] name = "clap_builder" -version = "4.3.24" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstream", "anstyle", @@ -388,39 +459,33 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.3.12" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "convert_case" -version = "0.4.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -428,19 +493,44 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "crypto-common" version = "0.1.6" @@ -453,41 +543,52 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.5.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", - "hashbrown 0.14.0", + "crossbeam-utils", + "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", ] [[package]] -name = "data-encoding" -version = "2.4.0" +name = "deranged" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +dependencies = [ + "powerfmt", +] [[package]] name = "derive_more" -version = "0.99.17" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "deunicode" -version = "0.4.4" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95203a6a50906215a502507c0f879a0ce7ff205a6111e2db2a5ef8e4bb92e43" +checksum = "dc55fe0d1f6c107595572ec8b107c0999bb1a2e0b75e37429a4fb0d6474a0e7d" [[package]] name = "digest" @@ -499,6 +600,17 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "duct" version = "0.13.7" @@ -513,56 +625,33 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] -[[package]] -name = "enum-as-inner" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ - "cc", "libc", + "windows-sys 0.59.0", ] [[package]] @@ -571,16 +660,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "888aa43e6b500bb98788503b19ec2bafc9de5c4e1e513b84ecfc9d2d34ccd2e8" dependencies = [ - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] [[package]] name = "fastrand" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fixedbitset" @@ -611,62 +700,62 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-io", @@ -691,64 +780,95 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] name = "gimli" -version = "0.27.3" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "globset" -version = "0.4.12" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aca8bbd8e0707c1887a8bbb7e6b40e228f251ff5d62c8220a4a7a53c73aff006" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" dependencies = [ "aho-corasick", "bstr", - "fnv", "log", - "regex", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] name = "globwalk" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" +checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "ignore", "walkdir", ] [[package]] name = "h2" -version = "0.3.20" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 1.9.3", + "http 0.2.12", + "indexmap 2.8.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.3.1", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -763,9 +883,15 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" @@ -774,10 +900,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.3.2" +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "home" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] [[package]] name = "hostname" @@ -790,11 +925,33 @@ dependencies = [ "winapi", ] +[[package]] +name = "hostname" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +dependencies = [ + "cfg-if", + "libc", + "windows", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" -version = "0.2.9" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -803,26 +960,49 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.3.1", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "http", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humansize" @@ -835,22 +1015,22 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2", "tokio", "tower-service", "tracing", @@ -858,42 +1038,102 @@ dependencies = [ ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "hyper" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "hyper", + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.8", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", "pin-project-lite", + "smallvec", "tokio", - "tokio-io-timeout", + "want", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-rustls" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ - "bytes", - "hyper", - "native-tls", + "futures-util", + "http 1.3.1", + "hyper 1.6.0", + "hyper-util", + "rustls 0.23.25", + "rustls-pki-types", "tokio", - "tokio-native-tls", + "tokio-rustls 0.26.2", + "tower-service", ] [[package]] -name = "iana-time-zone" -version = "0.1.57" +name = "hyper-timeout" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper 0.14.32", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.6.0", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -906,39 +1146,156 @@ dependencies = [ ] [[package]] -name = "idna" -version = "0.2.3" +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "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.100", ] [[package]] name = "idna" -version = "0.4.0" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] name = "ignore" -version = "0.4.20" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" dependencies = [ + "crossbeam-deque", "globset", - "lazy_static", "log", "memchr", - "regex", + "regex-automata 0.4.9", "same-file", - "thread_local", "walkdir", "winapi-util", ] @@ -955,106 +1312,102 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.15.2", ] [[package]] -name = "ipconfig" -version = "0.3.2" +name = "ipnet" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" -dependencies = [ - "socket2 0.5.3", - "widestring", - "windows-sys 0.48.0", - "winreg 0.50.0", -] +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] -name = "ipnet" -version = "2.8.0" +name = "is_terminal_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] -name = "is-terminal" -version = "0.4.12" +name = "itertools" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", + "either", ] [[package]] name = "itertools" -version = "0.10.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libloading" -version = "0.7.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "winapi", + "windows-targets 0.52.6", ] [[package]] name = "libm" -version = "0.2.7" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -1063,22 +1416,28 @@ dependencies = [ ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "linux-raw-sys" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + +[[package]] +name = "litemap" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1086,18 +1445,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" - -[[package]] -name = "lru-cache" -version = "0.1.2" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "match_cfg" @@ -1115,22 +1465,22 @@ dependencies = [ ] [[package]] -name = "matches" -version = "0.1.10" +name = "matchit" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "matchit" -version = "0.7.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67827e6ea8ee8a7c4a72227ef4fc08957040acffdb5f122733b24fa12daff41b" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -1146,22 +1496,22 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "0.8.8" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi", - "windows-sys 0.48.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] @@ -1172,11 +1522,10 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -1209,43 +1558,39 @@ dependencies = [ ] [[package]] -name = "num-traits" -version = "0.2.16" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" -dependencies = [ - "autocfg", -] +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "num_cpus" -version = "1.16.0" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "hermit-abi", - "libc", + "autocfg", ] [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -1259,26 +1604,26 @@ dependencies = [ [[package]] name = "object" -version = "0.31.1" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" [[package]] name = "openssl" -version = "0.10.55" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "cfg-if", "foreign-types", "libc", @@ -1295,20 +1640,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.90" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", @@ -1318,12 +1663,12 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d73ba8daf8fac13b0501d1abeddcfe21ba7401ada61a819144b6c2a4f32209" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1334,9 +1679,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -1344,53 +1689,48 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.1", + "windows-targets 0.52.6", ] [[package]] name = "parse-zoneinfo" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" +checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" dependencies = [ "regex", ] -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.2" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ - "thiserror", + "memchr", + "thiserror 2.0.12", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.2" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -1398,22 +1738,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.2" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "pest_meta" -version = "2.7.2" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", @@ -1422,28 +1762,28 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 1.9.3", + "indexmap 2.8.0", ] [[package]] name = "phf" -version = "0.10.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_shared", ] [[package]] name = "phf_codegen" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ "phf_generator", "phf_shared", @@ -1451,9 +1791,9 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", "rand", @@ -1461,35 +1801,35 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ "siphasher", - "uncased", ] [[package]] name = "phper" -version = "0.12.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cce79265fa70f2a6f5f11cf4f694e962f437575dee2001549c19b9489fb630" +checksum = "9b9b964d2e01253454c9a21e6380ab5c004ca8b128f0cecc17c8f88522570135" dependencies = [ + "cfg-if", "derive_more", - "indexmap 1.9.3", + "indexmap 2.8.0", "once_cell", "phper-alloc", "phper-build", "phper-macros", "phper-sys", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "phper-alloc" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fddab68605152a829badc546b4f8abb27ab11d6e2dce01cafb24c7bc3eca82e6" +checksum = "6d3052dc5ba0c3d13c07fbdd4820f9f0276a9b8afed4c84267af2ab59ff0b866" dependencies = [ "phper-build", "phper-sys", @@ -1497,59 +1837,60 @@ dependencies = [ [[package]] name = "phper-build" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c6249b9453daa38a626069a7586d3350d6f9cd6d94b91d6e80aa350af7034d" +checksum = "89e626e7fd9ede08f05d0c7f5b9247ae71da88223ab47cc1b496d4c1afec1a7d" dependencies = [ "phper-sys", ] [[package]] name = "phper-macros" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221c5c2f04e8dcba9dee646b79fd17ef4c1a64b4b32575662cbfdfebfde9fd7b" +checksum = "1d372ca9fb2bfb977d8189bfd8d322d41a8d3c4294111df14bfa99318dbc9747" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "phper-sys" -version = "0.12.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda67a4b0389183e564f08797db31b635eff8bb2b30cfe5cc2394acaa35cd6a7" +checksum = "23008d96066ac458fc1442f7429562baea8867e82652ae035cb071683be51eb4" dependencies = [ "bindgen", "cc", + "regex", ] [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -1559,9 +1900,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" @@ -1569,20 +1910,29 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e30165d31df606f5726b090ec7592c308a0eaf61721ff64c9a3018e344a8753e" dependencies = [ - "portable-atomic 1.4.2", + "portable-atomic 1.11.0", ] [[package]] name = "portable-atomic" -version = "1.4.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "prettyplease" @@ -1594,21 +1944,30 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prettyplease" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +dependencies = [ + "proc-macro2", + "syn 2.0.100", +] + [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "once_cell", "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -1620,7 +1979,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive 0.13.5", ] [[package]] @@ -1630,14 +1999,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", - "itertools", + "heck 0.4.1", + "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", - "prettyplease", - "prost", + "prettyplease 0.1.25", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -1652,36 +2021,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "prost-types" -version = "0.11.9" +name = "prost-derive" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ - "prost", + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "quick-error" -version = "1.2.3" +name = "prost-types" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] [[package]] name = "quote" -version = "1.0.32" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" version = "0.8.5" @@ -1709,7 +2091,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", ] [[package]] @@ -1730,11 +2112,29 @@ dependencies = [ "tokio", ] +[[package]] +name = "rdkafka" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b52c81ac3cac39c9639b95c20452076e74b8d9a71bc6fc4d83407af2ea6fff" +dependencies = [ + "futures-channel", + "futures-util", + "libc", + "log", + "rdkafka-sys", + "serde", + "serde_derive", + "serde_json", + "slab", + "tokio", +] + [[package]] name = "rdkafka-sys" -version = "4.5.0+1.9.2" +version = "4.8.0+2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb0676c2112342ac7165decdedbc4e7086c0af384479ccce534546b10687a5d" +checksum = "ced38182dc436b3d9df0c77976f37a67134df26b050df1f0006688e46fc4c8be" dependencies = [ "libc", "libz-sys", @@ -1746,23 +2146,23 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", ] [[package]] name = "regex" -version = "1.9.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.4", - "regex-syntax 0.7.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -1776,13 +2176,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.4" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.4", + "regex-syntax 0.8.5", ] [[package]] @@ -1793,26 +2193,29 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.11.18" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ - "base64 0.21.2", + "base64 0.22.1", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.4.8", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-rustls", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1821,30 +2224,23 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile 2.2.0", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper 1.0.2", + "system-configuration", "tokio", "tokio-native-tls", "tokio-util", + "tower 0.5.2", "tower-service", - "trust-dns-resolver", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "winreg 0.10.1", -] - -[[package]] -name = "resolv-conf" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", + "windows-registry", ] [[package]] @@ -1857,57 +2253,88 @@ dependencies = [ "libc", "once_cell", "spin", - "untrusted", + "untrusted 0.7.1", "web-sys", "winapi", ] [[package]] -name = "rustc-demangle" -version = "0.1.23" +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] -name = "rustc_version" -version = "0.4.0" +name = "rustix" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "semver", + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", ] [[package]] name = "rustix" -version = "0.38.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys", - "windows-sys 0.48.0", + "linux-raw-sys 0.9.3", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", - "ring", + "ring 0.16.20", "sct", "webpki", ] +[[package]] +name = "rustls" +version = "0.23.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -1915,31 +2342,57 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "schannel", "security-framework", ] [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.2", + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" + +[[package]] +name = "rustls-webpki" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +dependencies = [ + "ring 0.17.14", + "rustls-pki-types", + "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -1964,11 +2417,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -1992,21 +2445,21 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", - "untrusted", + "ring 0.17.14", + "untrusted 0.9.0", ] [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "core-foundation", "core-foundation-sys", "libc", @@ -2015,57 +2468,52 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", ] -[[package]] -name = "semver" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" - [[package]] name = "serde" -version = "1.0.180" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea67f183f058fe88a4e3ec6e2788e003840893b91bac4559cabedd00863b3ed" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.180" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e744d7782b686ab3b73267ef05697159cc0e5abbed3f47f9933165e5219036" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.8.0", "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_path_to_error" -version = "0.1.14" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" dependencies = [ "itoa", "serde", @@ -2085,9 +2533,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -2096,43 +2544,43 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "shared_child" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" dependencies = [ "libc", - "winapi", + "windows-sys 0.59.0", ] [[package]] name = "shlex" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "skywalking" @@ -2145,17 +2593,17 @@ dependencies = [ "cfg-if", "futures-core", "futures-util", - "hostname", + "hostname 0.3.1", "libz-sys", "once_cell", "parking_lot", "portable-atomic 0.3.20", - "prost", - "prost-derive", - "rdkafka", + "prost 0.11.9", + "prost-derive 0.11.9", + "rdkafka 0.32.2", "serde", "systemstat", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tonic", @@ -2169,23 +2617,23 @@ name = "skywalking-php" version = "1.0.0-dev" dependencies = [ "anyhow", - "axum", + "axum 0.8.1", "bincode", "dashmap", "fastcgi-client", "futures-util", - "hostname", + "hostname 0.4.0", "libc", "once_cell", "phper", "phper-build", - "prost", - "rdkafka", + "prost 0.13.5", + "rdkafka 0.37.0", "reqwest", "skywalking", "skywalking-php-worker", "systemstat", - "thiserror", + "thiserror 2.0.12", "time", "tokio", "tokio-stream", @@ -2202,11 +2650,10 @@ dependencies = [ "anyhow", "bincode", "clap", - "clap_lex", "libc", "once_cell", - "prost", - "rdkafka", + "prost 0.13.5", + "rdkafka 0.37.0", "serde_json", "skywalking", "tokio", @@ -2218,46 +2665,37 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "slug" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" dependencies = [ "deunicode", + "wasm-bindgen", ] [[package]] name = "smallvec" -version = "1.11.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] name = "socket2" -version = "0.4.9" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" -dependencies = [ - "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2266,11 +2704,23 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -2285,9 +2735,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -2300,11 +2750,52 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.0", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "systemstat" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24aec24a9312c83999a28e3ef9db7e2afd5c64bf47725b758cdc1cafd5b0bd2" +checksum = "668a4db78b439df482c238f559e4ea869017f9e62ef0a059c8bfcd841a4df544" dependencies = [ "bytesize", "lazy_static", @@ -2316,22 +2807,22 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.7.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" dependencies = [ - "cfg-if", "fastrand", - "redox_syscall", - "rustix", - "windows-sys 0.48.0", + "getrandom 0.3.2", + "once_cell", + "rustix 1.0.3", + "windows-sys 0.59.0", ] [[package]] name = "tera" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ab29bb4f3e256ae6ad5c3e2775aa1f8829f2c0c101fc407bfd3a6df15c60c5" +checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" dependencies = [ "chrono", "chrono-tz", @@ -2346,48 +2837,71 @@ dependencies = [ "serde", "serde_json", "slug", - "thread_local", "unic-segment", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ + "cfg-if", "once_cell", ] [[package]] name = "time" -version = "0.3.23" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" dependencies = [ + "deranged", "itoa", "libc", + "num-conv", "num_threads", + "powerfmt", "serde", "time-core", "time-macros", @@ -2395,52 +2909,46 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.10" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04" dependencies = [ + "num-conv", "time-core", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ - "tinyvec_macros", + "displaydoc", + "zerovec", ] -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" -version = "1.29.1" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.9", + "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2455,13 +2963,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] @@ -2480,16 +2988,26 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.9", "tokio", "webpki", ] +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls 0.23.25", + "tokio", +] + [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -2498,31 +3016,30 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.19.14" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.8.0", "toml_datetime", "winnow", ] @@ -2535,27 +3052,27 @@ checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.6.20", "base64 0.13.1", "bytes", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", "hyper-timeout", "percent-encoding", "pin-project", - "prost", - "prost-derive", + "prost 0.11.9", + "prost-derive 0.11.9", "rustls-native-certs", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -2568,7 +3085,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" dependencies = [ - "prettyplease", + "prettyplease 0.1.25", "proc-macro2", "prost-build", "quote", @@ -2595,25 +3112,40 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -2622,20 +3154,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -2653,20 +3185,20 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -2681,77 +3213,23 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "trust-dns-proto" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "rand", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lazy_static", - "lru-cache", - "parking_lot", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto", -] - [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "uncased" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68" -dependencies = [ - "version_check", -] +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unic-char-property" @@ -2804,64 +3282,73 @@ dependencies = [ ] [[package]] -name = "unicode-bidi" -version = "0.3.13" +name = "unicode-ident" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] -name = "unicode-ident" -version = "1.0.11" +name = "untrusted" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] -name = "unicode-normalization" -version = "0.1.22" +name = "untrusted" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] -name = "untrusted" -version = "0.7.1" +name = "unty" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" [[package]] name = "url" -version = "2.4.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna", "percent-encoding", ] +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.4.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom", + "getrandom 0.3.2", "serde", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -2871,15 +3358,21 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "virtue" +version = "0.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -2900,48 +3393,59 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2949,28 +3453,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" -version = "0.2.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -2981,9 +3488,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -2991,31 +3498,26 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring", - "untrusted", + "ring 0.17.14", + "untrusted 0.9.0", ] [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix 0.38.44", ] -[[package]] -name = "widestring" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" - [[package]] name = "winapi" version = "0.3.9" @@ -3034,11 +3536,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -3049,20 +3551,56 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-targets 0.48.1", + "windows-core", + "windows-targets 0.52.6", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.53.0", +] + +[[package]] +name = "windows-result" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" dependencies = [ - "windows-targets 0.48.1", + "windows-link", ] [[package]] @@ -3075,18 +3613,12 @@ dependencies = [ ] [[package]] -name = "windows-targets" -version = "0.48.1" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows-targets 0.52.6", ] [[package]] @@ -3098,7 +3630,7 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", @@ -3106,10 +3638,20 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" +name = "windows-targets" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] [[package]] name = "windows_aarch64_gnullvm" @@ -3118,10 +3660,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" +name = "windows_aarch64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -3130,10 +3672,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "windows_i686_gnu" -version = "0.48.0" +name = "windows_aarch64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -3141,6 +3683,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" @@ -3148,10 +3696,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] -name = "windows_i686_msvc" -version = "0.48.0" +name = "windows_i686_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -3160,10 +3708,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" +name = "windows_i686_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -3172,10 +3720,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" +name = "windows_x86_64_gnu" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -3184,10 +3732,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" +name = "windows_x86_64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -3195,30 +3743,131 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.5.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46aab759304e4d7b2075a9aecba26228bb073ee8c50db796b2c72c676b5d807" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] [[package]] -name = "winreg" -version = "0.10.1" +name = "wit-bindgen-rt" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "winapi", + "bitflags 2.9.0", ] [[package]] -name = "winreg" -version = "0.50.0" +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ - "cfg-if", - "windows-sys 0.48.0", + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] diff --git a/Cargo.toml b/Cargo.toml index 86000a1..f2f4f3f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,11 +23,14 @@ members = [ [workspace.package] version = "1.0.0-dev" authors = ["Apache Software Foundation", "jmjoy ", "Yanlong He "] -edition = "2021" -rust-version = "1.65" +edition = "2024" +rust-version = "1.85" repository = "https://github.com/apache/skywalking-php" license = "Apache-2.0" +[workspace.dependencies] +bincode = { version = "2.0.1", features = ["serde"] } + [package] name = "skywalking-php" version = { workspace = true } @@ -48,32 +51,35 @@ crate-type = ["lib", "cdylib"] kafka-reporter = ["skywalking-php-worker/kafka-reporter"] [dependencies] -anyhow = { version = "1.0.72", features = ["backtrace"] } -bincode = "1.3.3" -dashmap = "5.5.0" -futures-util = "0.3.28" -hostname = "0.3.1" -libc = "0.2.147" -once_cell = "1.18.0" -phper = "0.12.0" -prost = "0.11.9" -rdkafka = { version = "0.32.2", optional = true } +anyhow = { version = "1.0.97", features = ["backtrace"] } +bincode = { workspace = true } +dashmap = "6.1.0" +futures-util = "0.3.31" +hostname = "0.4.0" +libc = "0.2.171" +once_cell = "1.21.1" +phper = "0.15.1" +prost = "0.13.5" +rdkafka = { version = "0.37.0", optional = true } skywalking = { version = "0.8.0", features = ["management"] } skywalking-php-worker = { path = "worker" } -systemstat = "0.2.3" -thiserror = "1.0.44" +systemstat = "0.2.4" +thiserror = "2.0.12" time = { version = "0.3", features = ["formatting"] } -tokio = { version = "1.29.1", features = ["full"] } -tokio-stream = "0.1.14" +tokio = { version = "1.44.1", features = ["full"] } +tokio-stream = "0.1.17" tonic = { version = "0.8.3", features = ["tls", "tls-roots"] } -tracing = { version = "0.1.37", features = ["attributes"] } -tracing-subscriber = { version = "0.3.17", features = ["env-filter", "time", "local-time"] } -url = "2.4.0" +tracing = { version = "0.1.41", features = ["attributes"] } +tracing-subscriber = { version = "0.3.19", features = ["env-filter", "time", "local-time"] } +url = "2.5.4" [dev-dependencies] -axum = "0.6.19" +axum = "0.8.1" fastcgi-client = "0.9.0" -reqwest = { version = "0.11.18", features = ["trust-dns", "json", "stream"] } +reqwest = { version = "0.12.15", features = ["trust-dns", "json", "stream"] } [build-dependencies] -phper-build = "0.12.0" +phper-build = "0.15.0" + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(phper_major_version, values("8"))'] } diff --git a/dist-material/LICENSE b/dist-material/LICENSE index 7e54a95..5342ac1 100644 --- a/dist-material/LICENSE +++ b/dist-material/LICENSE @@ -190,15 +190,15 @@ licenses. The following components are provided under the (Apache-2.0 OR MIT) AND BSD-3-Clause License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/encoding_rs/0.8.32 0.8.32 (Apache-2.0 OR MIT) AND BSD-3-Clause + https://crates.io/crates/encoding_rs/0.8.35 0.8.35 (Apache-2.0 OR MIT) AND BSD-3-Clause ======================================================================== -(MIT OR Apache-2.0) AND Unicode-DFS-2016 licenses +(MIT OR Apache-2.0) AND Unicode-3.0 licenses ======================================================================== -The following components are provided under the (MIT OR Apache-2.0) AND Unicode-DFS-2016 License. See project link for details. +The following components are provided under the (MIT OR Apache-2.0) AND Unicode-3.0 License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/unicode-ident/1.0.11 1.0.11 (MIT OR Apache-2.0) AND Unicode-DFS-2016 + https://crates.io/crates/unicode-ident/1.0.18 1.0.18 (MIT OR Apache-2.0) AND Unicode-3.0 ======================================================================== 0BSD OR Apache-2.0 OR MIT licenses @@ -206,25 +206,36 @@ The text of each license is also included in licenses/LICENSE-[project].txt. The following components are provided under the 0BSD OR Apache-2.0 OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/adler/1.0.2 1.0.2 0BSD OR Apache-2.0 OR MIT + https://crates.io/crates/adler2/2.0.0 2.0.0 0BSD OR Apache-2.0 OR MIT ======================================================================== Apache-2.0 licenses ======================================================================== The following components are provided under the Apache-2.0 License. See project link for details. The text of each license is the standard Apache 2.0 license. - https://crates.io/crates/bytesize/1.2.0 1.2.0 Apache-2.0 - https://crates.io/crates/clang-sys/1.6.1 1.6.1 Apache-2.0 + https://crates.io/crates/bytesize/1.3.2 1.3.2 Apache-2.0 + https://crates.io/crates/clang-sys/1.8.1 1.8.1 Apache-2.0 https://crates.io/crates/fastcgi-client/0.9.0 0.9.0 Apache-2.0 - https://crates.io/crates/openssl/0.10.55 0.10.55 Apache-2.0 + https://crates.io/crates/openssl/0.10.71 0.10.71 Apache-2.0 https://crates.io/crates/prost/0.11.9 0.11.9 Apache-2.0 + https://crates.io/crates/prost/0.13.5 0.13.5 Apache-2.0 https://crates.io/crates/prost-build/0.11.9 0.11.9 Apache-2.0 https://crates.io/crates/prost-derive/0.11.9 0.11.9 Apache-2.0 + https://crates.io/crates/prost-derive/0.13.5 0.13.5 Apache-2.0 https://crates.io/crates/prost-types/0.11.9 0.11.9 Apache-2.0 https://crates.io/crates/sasl2-sys/0.1.22+2.1.28 0.1.22+2.1.28 Apache-2.0 https://crates.io/crates/scripts/0.0.0 0.0.0 Apache-2.0 https://crates.io/crates/skywalking/0.8.0 0.8.0 Apache-2.0 https://crates.io/crates/sync_wrapper/0.1.2 0.1.2 Apache-2.0 + https://crates.io/crates/sync_wrapper/1.0.2 1.0.2 Apache-2.0 + +======================================================================== +Apache-2.0 AND ISC licenses +======================================================================== +The following components are provided under the Apache-2.0 AND ISC License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/ring/0.17.14 0.17.14 Apache-2.0 AND ISC ======================================================================== Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT licenses @@ -232,9 +243,22 @@ Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT licenses The following components are provided under the Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/linux-raw-sys/0.4.5 0.4.5 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT - https://crates.io/crates/rustix/0.38.4 0.38.4 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/linux-raw-sys/0.4.15 0.4.15 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/linux-raw-sys/0.9.3 0.9.3 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/rustix/0.38.44 0.38.44 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/rustix/1.0.3 1.0.3 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT https://crates.io/crates/wasi/0.11.0+wasi-snapshot-preview1 0.11.0+wasi-snapshot-preview1 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/wasi/0.14.2+wasi-0.2.4 0.14.2+wasi-0.2.4 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/wit-bindgen-rt/0.39.0 0.39.0 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + +======================================================================== +Apache-2.0 OR BSD-2-Clause OR MIT licenses +======================================================================== +The following components are provided under the Apache-2.0 OR BSD-2-Clause OR MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/zerocopy/0.8.23 0.8.23 Apache-2.0 OR BSD-2-Clause OR MIT + https://crates.io/crates/zerocopy-derive/0.8.23 0.8.23 Apache-2.0 OR BSD-2-Clause OR MIT ======================================================================== Apache-2.0 OR BSD-3-Clause OR MIT licenses @@ -242,8 +266,8 @@ Apache-2.0 OR BSD-3-Clause OR MIT licenses The following components are provided under the Apache-2.0 OR BSD-3-Clause OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/num_enum/0.5.11 0.5.11 Apache-2.0 OR BSD-3-Clause OR MIT - https://crates.io/crates/num_enum_derive/0.5.11 0.5.11 Apache-2.0 OR BSD-3-Clause OR MIT + https://crates.io/crates/num_enum/0.7.3 0.7.3 Apache-2.0 OR BSD-3-Clause OR MIT + https://crates.io/crates/num_enum_derive/0.7.3 0.7.3 Apache-2.0 OR BSD-3-Clause OR MIT ======================================================================== Apache-2.0 OR BSL-1.0 licenses @@ -251,7 +275,7 @@ Apache-2.0 OR BSL-1.0 licenses The following components are provided under the Apache-2.0 OR BSL-1.0 License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/ryu/1.0.15 1.0.15 Apache-2.0 OR BSL-1.0 + https://crates.io/crates/ryu/1.0.20 1.0.20 Apache-2.0 OR BSL-1.0 ======================================================================== Apache-2.0 OR ISC OR MIT licenses @@ -259,10 +283,21 @@ Apache-2.0 OR ISC OR MIT licenses The following components are provided under the Apache-2.0 OR ISC OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/rustls/0.20.8 0.20.8 Apache-2.0 OR ISC OR MIT + https://crates.io/crates/hyper-rustls/0.27.5 0.27.5 Apache-2.0 OR ISC OR MIT + https://crates.io/crates/rustls/0.20.9 0.20.9 Apache-2.0 OR ISC OR MIT + https://crates.io/crates/rustls/0.23.25 0.23.25 Apache-2.0 OR ISC OR MIT https://crates.io/crates/rustls-native-certs/0.6.3 0.6.3 Apache-2.0 OR ISC OR MIT - https://crates.io/crates/rustls-pemfile/1.0.3 1.0.3 Apache-2.0 OR ISC OR MIT - https://crates.io/crates/sct/0.7.0 0.7.0 Apache-2.0 OR ISC OR MIT + https://crates.io/crates/rustls-pemfile/1.0.4 1.0.4 Apache-2.0 OR ISC OR MIT + https://crates.io/crates/rustls-pemfile/2.2.0 2.2.0 Apache-2.0 OR ISC OR MIT + https://crates.io/crates/sct/0.7.1 0.7.1 Apache-2.0 OR ISC OR MIT + +======================================================================== +Apache-2.0 OR LGPL-2.1-or-later OR MIT licenses +======================================================================== +The following components are provided under the Apache-2.0 OR LGPL-2.1-or-later OR MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/r-efi/5.2.0 5.2.0 Apache-2.0 OR LGPL-2.1-or-later OR MIT ======================================================================== Apache-2.0 OR MIT licenses @@ -270,218 +305,234 @@ Apache-2.0 OR MIT licenses The following components are provided under the Apache-2.0 OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/addr2line/0.20.0 0.20.0 Apache-2.0 OR MIT + https://crates.io/crates/addr2line/0.24.2 0.24.2 Apache-2.0 OR MIT https://crates.io/crates/android-tzdata/0.1.1 0.1.1 Apache-2.0 OR MIT https://crates.io/crates/android_system_properties/0.1.5 0.1.5 Apache-2.0 OR MIT - https://crates.io/crates/anstream/0.3.2 0.3.2 Apache-2.0 OR MIT - https://crates.io/crates/anstyle/1.0.1 1.0.1 Apache-2.0 OR MIT - https://crates.io/crates/anstyle-parse/0.2.1 0.2.1 Apache-2.0 OR MIT - https://crates.io/crates/anstyle-query/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/anstyle-wincon/1.0.2 1.0.2 Apache-2.0 OR MIT - https://crates.io/crates/anyhow/1.0.72 1.0.72 Apache-2.0 OR MIT - https://crates.io/crates/async-trait/0.1.72 0.1.72 Apache-2.0 OR MIT - https://crates.io/crates/autocfg/1.1.0 1.1.0 Apache-2.0 OR MIT - https://crates.io/crates/backtrace/0.3.68 0.3.68 Apache-2.0 OR MIT + https://crates.io/crates/anstream/0.6.18 0.6.18 Apache-2.0 OR MIT + https://crates.io/crates/anstyle/1.0.10 1.0.10 Apache-2.0 OR MIT + https://crates.io/crates/anstyle-parse/0.2.6 0.2.6 Apache-2.0 OR MIT + https://crates.io/crates/anstyle-query/1.1.2 1.1.2 Apache-2.0 OR MIT + https://crates.io/crates/anstyle-wincon/3.0.7 3.0.7 Apache-2.0 OR MIT + https://crates.io/crates/anyhow/1.0.97 1.0.97 Apache-2.0 OR MIT + https://crates.io/crates/async-trait/0.1.88 0.1.88 Apache-2.0 OR MIT + https://crates.io/crates/atomic-waker/1.1.2 1.1.2 Apache-2.0 OR MIT + https://crates.io/crates/autocfg/1.4.0 1.4.0 Apache-2.0 OR MIT + https://crates.io/crates/backtrace/0.3.74 0.3.74 Apache-2.0 OR MIT https://crates.io/crates/base64/0.13.1 0.13.1 Apache-2.0 OR MIT - https://crates.io/crates/base64/0.21.2 0.21.2 Apache-2.0 OR MIT + https://crates.io/crates/base64/0.21.7 0.21.7 Apache-2.0 OR MIT + https://crates.io/crates/base64/0.22.1 0.22.1 Apache-2.0 OR MIT https://crates.io/crates/bitflags/1.3.2 1.3.2 Apache-2.0 OR MIT - https://crates.io/crates/bitflags/2.3.3 2.3.3 Apache-2.0 OR MIT + https://crates.io/crates/bitflags/2.9.0 2.9.0 Apache-2.0 OR MIT https://crates.io/crates/block-buffer/0.10.4 0.10.4 Apache-2.0 OR MIT - https://crates.io/crates/bstr/1.6.0 1.6.0 Apache-2.0 OR MIT - https://crates.io/crates/bumpalo/3.13.0 3.13.0 Apache-2.0 OR MIT - https://crates.io/crates/cc/1.0.80 1.0.80 Apache-2.0 OR MIT + https://crates.io/crates/bstr/1.11.3 1.11.3 Apache-2.0 OR MIT + https://crates.io/crates/bumpalo/3.17.0 3.17.0 Apache-2.0 OR MIT + https://crates.io/crates/cc/1.2.16 1.2.16 Apache-2.0 OR MIT https://crates.io/crates/cexpr/0.6.0 0.6.0 Apache-2.0 OR MIT https://crates.io/crates/cfg-if/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/chrono/0.4.26 0.4.26 Apache-2.0 OR MIT - https://crates.io/crates/chrono-tz/0.6.1 0.6.1 Apache-2.0 OR MIT - https://crates.io/crates/chrono-tz-build/0.0.2 0.0.2 Apache-2.0 OR MIT - https://crates.io/crates/clap/4.3.24 4.3.24 Apache-2.0 OR MIT - https://crates.io/crates/clap_builder/4.3.24 4.3.24 Apache-2.0 OR MIT - https://crates.io/crates/clap_derive/4.3.12 4.3.12 Apache-2.0 OR MIT - https://crates.io/crates/clap_lex/0.5.0 0.5.0 Apache-2.0 OR MIT - https://crates.io/crates/colorchoice/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/core-foundation/0.9.3 0.9.3 Apache-2.0 OR MIT - https://crates.io/crates/core-foundation-sys/0.8.4 0.8.4 Apache-2.0 OR MIT - https://crates.io/crates/cpufeatures/0.2.9 0.2.9 Apache-2.0 OR MIT + https://crates.io/crates/chrono/0.4.40 0.4.40 Apache-2.0 OR MIT + https://crates.io/crates/chrono-tz/0.9.0 0.9.0 Apache-2.0 OR MIT + https://crates.io/crates/chrono-tz-build/0.3.0 0.3.0 Apache-2.0 OR MIT + https://crates.io/crates/clap/4.5.32 4.5.32 Apache-2.0 OR MIT + https://crates.io/crates/clap_builder/4.5.32 4.5.32 Apache-2.0 OR MIT + https://crates.io/crates/clap_derive/4.5.32 4.5.32 Apache-2.0 OR MIT + https://crates.io/crates/clap_lex/0.7.4 0.7.4 Apache-2.0 OR MIT + https://crates.io/crates/colorchoice/1.0.3 1.0.3 Apache-2.0 OR MIT + https://crates.io/crates/core-foundation/0.9.4 0.9.4 Apache-2.0 OR MIT + https://crates.io/crates/core-foundation-sys/0.8.7 0.8.7 Apache-2.0 OR MIT + https://crates.io/crates/cpufeatures/0.2.17 0.2.17 Apache-2.0 OR MIT + https://crates.io/crates/crossbeam-deque/0.8.6 0.8.6 Apache-2.0 OR MIT + https://crates.io/crates/crossbeam-epoch/0.9.18 0.9.18 Apache-2.0 OR MIT + https://crates.io/crates/crossbeam-utils/0.8.21 0.8.21 Apache-2.0 OR MIT https://crates.io/crates/crypto-common/0.1.6 0.1.6 Apache-2.0 OR MIT + https://crates.io/crates/deranged/0.4.0 0.4.0 Apache-2.0 OR MIT https://crates.io/crates/digest/0.10.7 0.10.7 Apache-2.0 OR MIT - https://crates.io/crates/either/1.9.0 1.9.0 Apache-2.0 OR MIT - https://crates.io/crates/enum-as-inner/0.5.1 0.5.1 Apache-2.0 OR MIT - https://crates.io/crates/equivalent/1.0.1 1.0.1 Apache-2.0 OR MIT - https://crates.io/crates/errno/0.3.2 0.3.2 Apache-2.0 OR MIT - https://crates.io/crates/fastrand/2.0.0 2.0.0 Apache-2.0 OR MIT + https://crates.io/crates/displaydoc/0.2.5 0.2.5 Apache-2.0 OR MIT + https://crates.io/crates/either/1.15.0 1.15.0 Apache-2.0 OR MIT + https://crates.io/crates/equivalent/1.0.2 1.0.2 Apache-2.0 OR MIT + https://crates.io/crates/errno/0.3.10 0.3.10 Apache-2.0 OR MIT + https://crates.io/crates/fastrand/2.3.0 2.3.0 Apache-2.0 OR MIT https://crates.io/crates/fixedbitset/0.4.2 0.4.2 Apache-2.0 OR MIT https://crates.io/crates/fnv/1.0.7 1.0.7 Apache-2.0 OR MIT https://crates.io/crates/foreign-types/0.3.2 0.3.2 Apache-2.0 OR MIT https://crates.io/crates/foreign-types-shared/0.1.1 0.1.1 Apache-2.0 OR MIT - https://crates.io/crates/form_urlencoded/1.2.0 1.2.0 Apache-2.0 OR MIT - https://crates.io/crates/futures-channel/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/futures-core/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/futures-io/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/futures-macro/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/futures-sink/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/futures-task/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/futures-util/0.3.28 0.3.28 Apache-2.0 OR MIT - https://crates.io/crates/getrandom/0.2.10 0.2.10 Apache-2.0 OR MIT - https://crates.io/crates/gimli/0.27.3 0.27.3 Apache-2.0 OR MIT - https://crates.io/crates/glob/0.3.1 0.3.1 Apache-2.0 OR MIT + https://crates.io/crates/form_urlencoded/1.2.1 1.2.1 Apache-2.0 OR MIT + https://crates.io/crates/futures-channel/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-core/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-io/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-macro/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-sink/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-task/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-util/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/getrandom/0.2.15 0.2.15 Apache-2.0 OR MIT + https://crates.io/crates/getrandom/0.3.2 0.3.2 Apache-2.0 OR MIT + https://crates.io/crates/gimli/0.31.1 0.31.1 Apache-2.0 OR MIT + https://crates.io/crates/glob/0.3.2 0.3.2 Apache-2.0 OR MIT https://crates.io/crates/hashbrown/0.12.3 0.12.3 Apache-2.0 OR MIT - https://crates.io/crates/hashbrown/0.14.0 0.14.0 Apache-2.0 OR MIT + https://crates.io/crates/hashbrown/0.14.5 0.14.5 Apache-2.0 OR MIT + https://crates.io/crates/hashbrown/0.15.2 0.15.2 Apache-2.0 OR MIT https://crates.io/crates/heck/0.4.1 0.4.1 Apache-2.0 OR MIT - https://crates.io/crates/hermit-abi/0.3.2 0.3.2 Apache-2.0 OR MIT - https://crates.io/crates/http/0.2.9 0.2.9 Apache-2.0 OR MIT - https://crates.io/crates/httparse/1.8.0 1.8.0 Apache-2.0 OR MIT - https://crates.io/crates/httpdate/1.0.2 1.0.2 Apache-2.0 OR MIT + https://crates.io/crates/heck/0.5.0 0.5.0 Apache-2.0 OR MIT + https://crates.io/crates/home/0.5.11 0.5.11 Apache-2.0 OR MIT + https://crates.io/crates/http/0.2.12 0.2.12 Apache-2.0 OR MIT + https://crates.io/crates/http/1.3.1 1.3.1 Apache-2.0 OR MIT + https://crates.io/crates/httparse/1.10.1 1.10.1 Apache-2.0 OR MIT + https://crates.io/crates/httpdate/1.0.3 1.0.3 Apache-2.0 OR MIT https://crates.io/crates/humansize/2.1.3 2.1.3 Apache-2.0 OR MIT https://crates.io/crates/hyper-timeout/0.4.1 0.4.1 Apache-2.0 OR MIT - https://crates.io/crates/hyper-tls/0.5.0 0.5.0 Apache-2.0 OR MIT - https://crates.io/crates/iana-time-zone/0.1.57 0.1.57 Apache-2.0 OR MIT + https://crates.io/crates/hyper-tls/0.6.0 0.6.0 Apache-2.0 OR MIT + https://crates.io/crates/iana-time-zone/0.1.61 0.1.61 Apache-2.0 OR MIT https://crates.io/crates/iana-time-zone-haiku/0.1.2 0.1.2 Apache-2.0 OR MIT - https://crates.io/crates/idna/0.2.3 0.2.3 Apache-2.0 OR MIT - https://crates.io/crates/idna/0.4.0 0.4.0 Apache-2.0 OR MIT + https://crates.io/crates/idna/1.0.3 1.0.3 Apache-2.0 OR MIT + https://crates.io/crates/idna_adapter/1.2.0 1.2.0 Apache-2.0 OR MIT https://crates.io/crates/indexmap/1.9.3 1.9.3 Apache-2.0 OR MIT - https://crates.io/crates/indexmap/2.0.0 2.0.0 Apache-2.0 OR MIT - https://crates.io/crates/ipconfig/0.3.2 0.3.2 Apache-2.0 OR MIT - https://crates.io/crates/ipnet/2.8.0 2.8.0 Apache-2.0 OR MIT + https://crates.io/crates/indexmap/2.8.0 2.8.0 Apache-2.0 OR MIT + https://crates.io/crates/ipnet/2.11.0 2.11.0 Apache-2.0 OR MIT + https://crates.io/crates/is_terminal_polyfill/1.70.1 1.70.1 Apache-2.0 OR MIT https://crates.io/crates/itertools/0.10.5 0.10.5 Apache-2.0 OR MIT - https://crates.io/crates/itoa/1.0.9 1.0.9 Apache-2.0 OR MIT - https://crates.io/crates/js-sys/0.3.64 0.3.64 Apache-2.0 OR MIT - https://crates.io/crates/lazy_static/1.4.0 1.4.0 Apache-2.0 OR MIT - https://crates.io/crates/lazycell/1.3.0 1.3.0 Apache-2.0 OR MIT - https://crates.io/crates/libc/0.2.147 0.2.147 Apache-2.0 OR MIT - https://crates.io/crates/libm/0.2.7 0.2.7 Apache-2.0 OR MIT - https://crates.io/crates/libz-sys/1.1.12 1.1.12 Apache-2.0 OR MIT - https://crates.io/crates/linked-hash-map/0.5.6 0.5.6 Apache-2.0 OR MIT - https://crates.io/crates/lock_api/0.4.10 0.4.10 Apache-2.0 OR MIT - https://crates.io/crates/log/0.4.19 0.4.19 Apache-2.0 OR MIT - https://crates.io/crates/lru-cache/0.1.2 0.1.2 Apache-2.0 OR MIT + https://crates.io/crates/itertools/0.13.0 0.13.0 Apache-2.0 OR MIT + https://crates.io/crates/itertools/0.14.0 0.14.0 Apache-2.0 OR MIT + https://crates.io/crates/itoa/1.0.15 1.0.15 Apache-2.0 OR MIT + https://crates.io/crates/js-sys/0.3.77 0.3.77 Apache-2.0 OR MIT + https://crates.io/crates/lazy_static/1.5.0 1.5.0 Apache-2.0 OR MIT + https://crates.io/crates/libc/0.2.171 0.2.171 Apache-2.0 OR MIT + https://crates.io/crates/libz-sys/1.1.22 1.1.22 Apache-2.0 OR MIT + https://crates.io/crates/lock_api/0.4.12 0.4.12 Apache-2.0 OR MIT + https://crates.io/crates/log/0.4.26 0.4.26 Apache-2.0 OR MIT https://crates.io/crates/match_cfg/0.1.0 0.1.0 Apache-2.0 OR MIT https://crates.io/crates/mime/0.3.17 0.3.17 Apache-2.0 OR MIT https://crates.io/crates/minimal-lexical/0.2.1 0.2.1 Apache-2.0 OR MIT https://crates.io/crates/multimap/0.8.3 0.8.3 Apache-2.0 OR MIT - https://crates.io/crates/native-tls/0.2.11 0.2.11 Apache-2.0 OR MIT - https://crates.io/crates/num-traits/0.2.16 0.2.16 Apache-2.0 OR MIT - https://crates.io/crates/num_cpus/1.16.0 1.16.0 Apache-2.0 OR MIT + https://crates.io/crates/native-tls/0.2.14 0.2.14 Apache-2.0 OR MIT + https://crates.io/crates/num-conv/0.1.0 0.1.0 Apache-2.0 OR MIT + https://crates.io/crates/num-traits/0.2.19 0.2.19 Apache-2.0 OR MIT https://crates.io/crates/num_threads/0.1.7 0.1.7 Apache-2.0 OR MIT - https://crates.io/crates/object/0.31.1 0.31.1 Apache-2.0 OR MIT - https://crates.io/crates/once_cell/1.18.0 1.18.0 Apache-2.0 OR MIT + https://crates.io/crates/object/0.36.7 0.36.7 Apache-2.0 OR MIT + https://crates.io/crates/once_cell/1.21.1 1.21.1 Apache-2.0 OR MIT https://crates.io/crates/openssl-macros/0.1.1 0.1.1 Apache-2.0 OR MIT - https://crates.io/crates/openssl-probe/0.1.5 0.1.5 Apache-2.0 OR MIT - https://crates.io/crates/parking_lot/0.12.1 0.12.1 Apache-2.0 OR MIT - https://crates.io/crates/parking_lot_core/0.9.8 0.9.8 Apache-2.0 OR MIT - https://crates.io/crates/peeking_take_while/0.1.2 0.1.2 Apache-2.0 OR MIT - https://crates.io/crates/percent-encoding/2.3.0 2.3.0 Apache-2.0 OR MIT - https://crates.io/crates/pest/2.7.2 2.7.2 Apache-2.0 OR MIT - https://crates.io/crates/pest_derive/2.7.2 2.7.2 Apache-2.0 OR MIT - https://crates.io/crates/pest_generator/2.7.2 2.7.2 Apache-2.0 OR MIT - https://crates.io/crates/pest_meta/2.7.2 2.7.2 Apache-2.0 OR MIT - https://crates.io/crates/petgraph/0.6.3 0.6.3 Apache-2.0 OR MIT - https://crates.io/crates/pin-project/1.1.2 1.1.2 Apache-2.0 OR MIT - https://crates.io/crates/pin-project-internal/1.1.2 1.1.2 Apache-2.0 OR MIT - https://crates.io/crates/pin-project-lite/0.2.10 0.2.10 Apache-2.0 OR MIT + https://crates.io/crates/openssl-probe/0.1.6 0.1.6 Apache-2.0 OR MIT + https://crates.io/crates/parking_lot/0.12.3 0.12.3 Apache-2.0 OR MIT + https://crates.io/crates/parking_lot_core/0.9.10 0.9.10 Apache-2.0 OR MIT + https://crates.io/crates/percent-encoding/2.3.1 2.3.1 Apache-2.0 OR MIT + https://crates.io/crates/pest/2.7.15 2.7.15 Apache-2.0 OR MIT + https://crates.io/crates/pest_derive/2.7.15 2.7.15 Apache-2.0 OR MIT + https://crates.io/crates/pest_generator/2.7.15 2.7.15 Apache-2.0 OR MIT + https://crates.io/crates/pest_meta/2.7.15 2.7.15 Apache-2.0 OR MIT + https://crates.io/crates/petgraph/0.6.5 0.6.5 Apache-2.0 OR MIT + https://crates.io/crates/pin-project/1.1.10 1.1.10 Apache-2.0 OR MIT + https://crates.io/crates/pin-project-internal/1.1.10 1.1.10 Apache-2.0 OR MIT + https://crates.io/crates/pin-project-lite/0.2.16 0.2.16 Apache-2.0 OR MIT https://crates.io/crates/pin-utils/0.1.0 0.1.0 Apache-2.0 OR MIT - https://crates.io/crates/pkg-config/0.3.27 0.3.27 Apache-2.0 OR MIT + https://crates.io/crates/pkg-config/0.3.32 0.3.32 Apache-2.0 OR MIT https://crates.io/crates/portable-atomic/0.3.20 0.3.20 Apache-2.0 OR MIT - https://crates.io/crates/portable-atomic/1.4.2 1.4.2 Apache-2.0 OR MIT - https://crates.io/crates/ppv-lite86/0.2.17 0.2.17 Apache-2.0 OR MIT + https://crates.io/crates/portable-atomic/1.11.0 1.11.0 Apache-2.0 OR MIT + https://crates.io/crates/powerfmt/0.2.0 0.2.0 Apache-2.0 OR MIT + https://crates.io/crates/ppv-lite86/0.2.21 0.2.21 Apache-2.0 OR MIT https://crates.io/crates/prettyplease/0.1.25 0.1.25 Apache-2.0 OR MIT - https://crates.io/crates/proc-macro-crate/1.3.1 1.3.1 Apache-2.0 OR MIT - https://crates.io/crates/proc-macro2/1.0.86 1.0.86 Apache-2.0 OR MIT - https://crates.io/crates/quick-error/1.2.3 1.2.3 Apache-2.0 OR MIT - https://crates.io/crates/quote/1.0.32 1.0.32 Apache-2.0 OR MIT + https://crates.io/crates/prettyplease/0.2.31 0.2.31 Apache-2.0 OR MIT + https://crates.io/crates/proc-macro-crate/3.3.0 3.3.0 Apache-2.0 OR MIT + https://crates.io/crates/proc-macro2/1.0.94 1.0.94 Apache-2.0 OR MIT + https://crates.io/crates/quote/1.0.40 1.0.40 Apache-2.0 OR MIT https://crates.io/crates/rand/0.8.5 0.8.5 Apache-2.0 OR MIT https://crates.io/crates/rand_chacha/0.3.1 0.3.1 Apache-2.0 OR MIT https://crates.io/crates/rand_core/0.6.4 0.6.4 Apache-2.0 OR MIT - https://crates.io/crates/regex/1.9.1 1.9.1 Apache-2.0 OR MIT - https://crates.io/crates/regex-automata/0.3.4 0.3.4 Apache-2.0 OR MIT + https://crates.io/crates/regex/1.11.1 1.11.1 Apache-2.0 OR MIT + https://crates.io/crates/regex-automata/0.4.9 0.4.9 Apache-2.0 OR MIT https://crates.io/crates/regex-syntax/0.6.29 0.6.29 Apache-2.0 OR MIT - https://crates.io/crates/regex-syntax/0.7.4 0.7.4 Apache-2.0 OR MIT - https://crates.io/crates/reqwest/0.11.18 0.11.18 Apache-2.0 OR MIT - https://crates.io/crates/resolv-conf/0.7.0 0.7.0 Apache-2.0 OR MIT - https://crates.io/crates/rustc-demangle/0.1.23 0.1.23 Apache-2.0 OR MIT - https://crates.io/crates/rustc-hash/1.1.0 1.1.0 Apache-2.0 OR MIT - https://crates.io/crates/rustc_version/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/rustversion/1.0.14 1.0.14 Apache-2.0 OR MIT + https://crates.io/crates/regex-syntax/0.8.5 0.8.5 Apache-2.0 OR MIT + https://crates.io/crates/reqwest/0.12.15 0.12.15 Apache-2.0 OR MIT + https://crates.io/crates/rustc-demangle/0.1.24 0.1.24 Apache-2.0 OR MIT + https://crates.io/crates/rustc-hash/2.1.1 2.1.1 Apache-2.0 OR MIT + https://crates.io/crates/rustls-pki-types/1.11.0 1.11.0 Apache-2.0 OR MIT + https://crates.io/crates/rustversion/1.0.20 1.0.20 Apache-2.0 OR MIT https://crates.io/crates/scopeguard/1.2.0 1.2.0 Apache-2.0 OR MIT - https://crates.io/crates/security-framework/2.9.2 2.9.2 Apache-2.0 OR MIT - https://crates.io/crates/security-framework-sys/2.9.1 2.9.1 Apache-2.0 OR MIT - https://crates.io/crates/semver/1.0.18 1.0.18 Apache-2.0 OR MIT - https://crates.io/crates/serde/1.0.180 1.0.180 Apache-2.0 OR MIT - https://crates.io/crates/serde_derive/1.0.180 1.0.180 Apache-2.0 OR MIT - https://crates.io/crates/serde_json/1.0.104 1.0.104 Apache-2.0 OR MIT - https://crates.io/crates/serde_path_to_error/0.1.14 0.1.14 Apache-2.0 OR MIT + https://crates.io/crates/security-framework/2.11.1 2.11.1 Apache-2.0 OR MIT + https://crates.io/crates/security-framework-sys/2.14.0 2.14.0 Apache-2.0 OR MIT + https://crates.io/crates/serde/1.0.219 1.0.219 Apache-2.0 OR MIT + https://crates.io/crates/serde_derive/1.0.219 1.0.219 Apache-2.0 OR MIT + https://crates.io/crates/serde_json/1.0.140 1.0.140 Apache-2.0 OR MIT + https://crates.io/crates/serde_path_to_error/0.1.17 0.1.17 Apache-2.0 OR MIT https://crates.io/crates/serde_urlencoded/0.7.1 0.7.1 Apache-2.0 OR MIT - https://crates.io/crates/sha2/0.10.7 0.10.7 Apache-2.0 OR MIT - https://crates.io/crates/shlex/1.1.0 1.1.0 Apache-2.0 OR MIT - https://crates.io/crates/signal-hook-registry/1.4.1 1.4.1 Apache-2.0 OR MIT - https://crates.io/crates/siphasher/0.3.10 0.3.10 Apache-2.0 OR MIT - https://crates.io/crates/slug/0.1.4 0.1.4 Apache-2.0 OR MIT - https://crates.io/crates/smallvec/1.11.0 1.11.0 Apache-2.0 OR MIT - https://crates.io/crates/socket2/0.4.9 0.4.9 Apache-2.0 OR MIT - https://crates.io/crates/socket2/0.5.3 0.5.3 Apache-2.0 OR MIT + https://crates.io/crates/sha2/0.10.8 0.10.8 Apache-2.0 OR MIT + https://crates.io/crates/shlex/1.3.0 1.3.0 Apache-2.0 OR MIT + https://crates.io/crates/signal-hook-registry/1.4.2 1.4.2 Apache-2.0 OR MIT + https://crates.io/crates/siphasher/1.0.1 1.0.1 Apache-2.0 OR MIT + https://crates.io/crates/slug/0.1.6 0.1.6 Apache-2.0 OR MIT + https://crates.io/crates/smallvec/1.14.0 1.14.0 Apache-2.0 OR MIT + https://crates.io/crates/socket2/0.5.8 0.5.8 Apache-2.0 OR MIT + https://crates.io/crates/stable_deref_trait/1.2.0 1.2.0 Apache-2.0 OR MIT https://crates.io/crates/syn/1.0.109 1.0.109 Apache-2.0 OR MIT - https://crates.io/crates/syn/2.0.28 2.0.28 Apache-2.0 OR MIT - https://crates.io/crates/tempfile/3.7.0 3.7.0 Apache-2.0 OR MIT - https://crates.io/crates/thiserror/1.0.44 1.0.44 Apache-2.0 OR MIT - https://crates.io/crates/thiserror-impl/1.0.44 1.0.44 Apache-2.0 OR MIT - https://crates.io/crates/thread_local/1.1.4 1.1.4 Apache-2.0 OR MIT - https://crates.io/crates/time/0.3.23 0.3.23 Apache-2.0 OR MIT - https://crates.io/crates/time-core/0.1.1 0.1.1 Apache-2.0 OR MIT - https://crates.io/crates/time-macros/0.2.10 0.2.10 Apache-2.0 OR MIT + https://crates.io/crates/syn/2.0.100 2.0.100 Apache-2.0 OR MIT + https://crates.io/crates/system-configuration/0.6.1 0.6.1 Apache-2.0 OR MIT + https://crates.io/crates/system-configuration-sys/0.6.0 0.6.0 Apache-2.0 OR MIT + https://crates.io/crates/tempfile/3.19.0 3.19.0 Apache-2.0 OR MIT + https://crates.io/crates/thiserror/1.0.69 1.0.69 Apache-2.0 OR MIT + https://crates.io/crates/thiserror/2.0.12 2.0.12 Apache-2.0 OR MIT + https://crates.io/crates/thiserror-impl/1.0.69 1.0.69 Apache-2.0 OR MIT + https://crates.io/crates/thiserror-impl/2.0.12 2.0.12 Apache-2.0 OR MIT + https://crates.io/crates/thread_local/1.1.8 1.1.8 Apache-2.0 OR MIT + https://crates.io/crates/time/0.3.40 0.3.40 Apache-2.0 OR MIT + https://crates.io/crates/time-core/0.1.4 0.1.4 Apache-2.0 OR MIT + https://crates.io/crates/time-macros/0.2.21 0.2.21 Apache-2.0 OR MIT https://crates.io/crates/tokio-io-timeout/1.2.0 1.2.0 Apache-2.0 OR MIT https://crates.io/crates/tokio-rustls/0.23.4 0.23.4 Apache-2.0 OR MIT - https://crates.io/crates/toml_datetime/0.6.3 0.6.3 Apache-2.0 OR MIT - https://crates.io/crates/toml_edit/0.19.14 0.19.14 Apache-2.0 OR MIT - https://crates.io/crates/trust-dns-proto/0.22.0 0.22.0 Apache-2.0 OR MIT - https://crates.io/crates/trust-dns-resolver/0.22.0 0.22.0 Apache-2.0 OR MIT - https://crates.io/crates/typenum/1.16.0 1.16.0 Apache-2.0 OR MIT - https://crates.io/crates/ucd-trie/0.1.6 0.1.6 Apache-2.0 OR MIT - https://crates.io/crates/uncased/0.9.9 0.9.9 Apache-2.0 OR MIT + https://crates.io/crates/tokio-rustls/0.26.2 0.26.2 Apache-2.0 OR MIT + https://crates.io/crates/toml_datetime/0.6.8 0.6.8 Apache-2.0 OR MIT + https://crates.io/crates/toml_edit/0.22.24 0.22.24 Apache-2.0 OR MIT + https://crates.io/crates/typenum/1.18.0 1.18.0 Apache-2.0 OR MIT + https://crates.io/crates/ucd-trie/0.1.7 0.1.7 Apache-2.0 OR MIT https://crates.io/crates/unic-char-property/0.9.0 0.9.0 Apache-2.0 OR MIT https://crates.io/crates/unic-char-range/0.9.0 0.9.0 Apache-2.0 OR MIT https://crates.io/crates/unic-common/0.9.0 0.9.0 Apache-2.0 OR MIT https://crates.io/crates/unic-segment/0.9.0 0.9.0 Apache-2.0 OR MIT https://crates.io/crates/unic-ucd-segment/0.9.0 0.9.0 Apache-2.0 OR MIT https://crates.io/crates/unic-ucd-version/0.9.0 0.9.0 Apache-2.0 OR MIT - https://crates.io/crates/unicode-bidi/0.3.13 0.3.13 Apache-2.0 OR MIT - https://crates.io/crates/unicode-normalization/0.1.22 0.1.22 Apache-2.0 OR MIT - https://crates.io/crates/url/2.4.0 2.4.0 Apache-2.0 OR MIT - https://crates.io/crates/utf8parse/0.2.1 0.2.1 Apache-2.0 OR MIT - https://crates.io/crates/uuid/1.4.1 1.4.1 Apache-2.0 OR MIT + https://crates.io/crates/unty/0.0.4 0.0.4 Apache-2.0 OR MIT + https://crates.io/crates/url/2.5.4 2.5.4 Apache-2.0 OR MIT + https://crates.io/crates/utf16_iter/1.0.5 1.0.5 Apache-2.0 OR MIT + https://crates.io/crates/utf8_iter/1.0.4 1.0.4 Apache-2.0 OR MIT + https://crates.io/crates/utf8parse/0.2.2 0.2.2 Apache-2.0 OR MIT + https://crates.io/crates/uuid/1.16.0 1.16.0 Apache-2.0 OR MIT https://crates.io/crates/vcpkg/0.2.15 0.2.15 Apache-2.0 OR MIT - https://crates.io/crates/version_check/0.9.4 0.9.4 Apache-2.0 OR MIT - https://crates.io/crates/wasm-bindgen/0.2.87 0.2.87 Apache-2.0 OR MIT - https://crates.io/crates/wasm-bindgen-backend/0.2.87 0.2.87 Apache-2.0 OR MIT - https://crates.io/crates/wasm-bindgen-futures/0.4.37 0.4.37 Apache-2.0 OR MIT - https://crates.io/crates/wasm-bindgen-macro/0.2.87 0.2.87 Apache-2.0 OR MIT - https://crates.io/crates/wasm-bindgen-macro-support/0.2.87 0.2.87 Apache-2.0 OR MIT - https://crates.io/crates/wasm-bindgen-shared/0.2.87 0.2.87 Apache-2.0 OR MIT - https://crates.io/crates/wasm-streams/0.2.3 0.2.3 Apache-2.0 OR MIT - https://crates.io/crates/web-sys/0.3.64 0.3.64 Apache-2.0 OR MIT - https://crates.io/crates/widestring/1.0.2 1.0.2 Apache-2.0 OR MIT + https://crates.io/crates/version_check/0.9.5 0.9.5 Apache-2.0 OR MIT + https://crates.io/crates/wasm-bindgen/0.2.100 0.2.100 Apache-2.0 OR MIT + https://crates.io/crates/wasm-bindgen-backend/0.2.100 0.2.100 Apache-2.0 OR MIT + https://crates.io/crates/wasm-bindgen-futures/0.4.50 0.4.50 Apache-2.0 OR MIT + https://crates.io/crates/wasm-bindgen-macro/0.2.100 0.2.100 Apache-2.0 OR MIT + https://crates.io/crates/wasm-bindgen-macro-support/0.2.100 0.2.100 Apache-2.0 OR MIT + https://crates.io/crates/wasm-bindgen-shared/0.2.100 0.2.100 Apache-2.0 OR MIT + https://crates.io/crates/wasm-streams/0.4.2 0.4.2 Apache-2.0 OR MIT + https://crates.io/crates/web-sys/0.3.77 0.3.77 Apache-2.0 OR MIT https://crates.io/crates/winapi/0.3.9 0.3.9 Apache-2.0 OR MIT https://crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0 0.4.0 Apache-2.0 OR MIT https://crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/windows/0.48.0 0.48.0 Apache-2.0 OR MIT - https://crates.io/crates/windows-sys/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows/0.52.0 0.52.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-core/0.52.0 0.52.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-link/0.1.1 0.1.1 Apache-2.0 OR MIT + https://crates.io/crates/windows-registry/0.4.0 0.4.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-result/0.3.2 0.3.2 Apache-2.0 OR MIT + https://crates.io/crates/windows-strings/0.3.1 0.3.1 Apache-2.0 OR MIT https://crates.io/crates/windows-sys/0.52.0 0.52.0 Apache-2.0 OR MIT - https://crates.io/crates/windows-targets/0.48.1 0.48.1 Apache-2.0 OR MIT + https://crates.io/crates/windows-sys/0.59.0 0.59.0 Apache-2.0 OR MIT https://crates.io/crates/windows-targets/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_aarch64_gnullvm/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-targets/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_aarch64_gnullvm/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_aarch64_msvc/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows_aarch64_gnullvm/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_aarch64_msvc/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_i686_gnu/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows_aarch64_msvc/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_i686_gnu/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_i686_gnu/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_i686_gnullvm/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_i686_msvc/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows_i686_gnullvm/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_i686_msvc/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_x86_64_gnu/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows_i686_msvc/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_x86_64_gnu/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_x86_64_gnullvm/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows_x86_64_gnu/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_x86_64_gnullvm/0.52.6 0.52.6 Apache-2.0 OR MIT - https://crates.io/crates/windows_x86_64_msvc/0.48.0 0.48.0 Apache-2.0 OR MIT + https://crates.io/crates/windows_x86_64_gnullvm/0.53.0 0.53.0 Apache-2.0 OR MIT https://crates.io/crates/windows_x86_64_msvc/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_x86_64_msvc/0.53.0 0.53.0 Apache-2.0 OR MIT + https://crates.io/crates/write16/1.0.0 1.0.0 Apache-2.0 OR MIT + https://crates.io/crates/zeroize/1.8.1 1.8.1 Apache-2.0 OR MIT ======================================================================== Apache-2.0 OR MIT OR Zlib licenses @@ -489,9 +540,15 @@ Apache-2.0 OR MIT OR Zlib licenses The following components are provided under the Apache-2.0 OR MIT OR Zlib License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/miniz_oxide/0.7.1 0.7.1 Apache-2.0 OR MIT OR Zlib - https://crates.io/crates/tinyvec/1.6.0 1.6.0 Apache-2.0 OR MIT OR Zlib - https://crates.io/crates/tinyvec_macros/0.1.1 0.1.1 Apache-2.0 OR MIT OR Zlib + https://crates.io/crates/miniz_oxide/0.8.5 0.8.5 Apache-2.0 OR MIT OR Zlib + +======================================================================== +Apache-2.0) OR MIT AND (MIT licenses +======================================================================== +The following components are provided under the Apache-2.0) OR MIT AND (MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/libm/0.2.11 0.2.11 Apache-2.0) OR MIT AND (MIT ======================================================================== BSD-3-Clause licenses @@ -499,8 +556,9 @@ BSD-3-Clause licenses The following components are provided under the BSD-3-Clause License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/bindgen/0.63.0 0.63.0 BSD-3-Clause - https://crates.io/crates/deunicode/0.4.4 0.4.4 BSD-3-Clause + https://crates.io/crates/bindgen/0.71.1 0.71.1 BSD-3-Clause + https://crates.io/crates/deunicode/1.6.1 1.6.1 BSD-3-Clause + https://crates.io/crates/subtle/2.6.1 2.6.1 BSD-3-Clause ======================================================================== ISC licenses @@ -508,9 +566,11 @@ ISC licenses The following components are provided under the ISC License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/libloading/0.7.4 0.7.4 ISC + https://crates.io/crates/libloading/0.8.6 0.8.6 ISC + https://crates.io/crates/rustls-webpki/0.103.0 0.103.0 ISC https://crates.io/crates/untrusted/0.7.1 0.7.1 ISC - https://crates.io/crates/webpki/0.22.0 0.22.0 ISC + https://crates.io/crates/untrusted/0.9.0 0.9.0 ISC + https://crates.io/crates/webpki/0.22.4 0.22.4 ISC ======================================================================== ISC and OpenSSL and MIT licenses @@ -526,71 +586,78 @@ MIT licenses The following components are provided under the MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/async-stream/0.3.5 0.3.5 MIT - https://crates.io/crates/async-stream-impl/0.3.5 0.3.5 MIT - https://crates.io/crates/axum/0.6.19 0.6.19 MIT + https://crates.io/crates/async-stream/0.3.6 0.3.6 MIT + https://crates.io/crates/async-stream-impl/0.3.6 0.3.6 MIT + https://crates.io/crates/axum/0.6.20 0.6.20 MIT + https://crates.io/crates/axum/0.8.1 0.8.1 MIT https://crates.io/crates/axum-core/0.3.4 0.3.4 MIT - https://crates.io/crates/bincode/1.3.3 1.3.3 MIT - https://crates.io/crates/bytes/1.4.0 1.4.0 MIT - https://crates.io/crates/convert_case/0.4.0 0.4.0 MIT - https://crates.io/crates/dashmap/5.5.0 5.5.0 MIT - https://crates.io/crates/data-encoding/2.4.0 2.4.0 MIT - https://crates.io/crates/derive_more/0.99.17 0.99.17 MIT + https://crates.io/crates/axum-core/0.5.0 0.5.0 MIT + https://crates.io/crates/bincode/2.0.1 2.0.1 MIT + https://crates.io/crates/bincode_derive/2.0.1 2.0.1 MIT + https://crates.io/crates/bytes/1.10.1 1.10.1 MIT + https://crates.io/crates/dashmap/6.1.0 6.1.0 MIT + https://crates.io/crates/derive_more/2.0.1 2.0.1 MIT + https://crates.io/crates/derive_more-impl/2.0.1 2.0.1 MIT https://crates.io/crates/duct/0.13.7 0.13.7 MIT - https://crates.io/crates/errno-dragonfly/0.1.2 0.1.2 MIT https://crates.io/crates/generic-array/0.14.7 0.14.7 MIT - https://crates.io/crates/globwalk/0.8.1 0.8.1 MIT - https://crates.io/crates/h2/0.3.20 0.3.20 MIT + https://crates.io/crates/globwalk/0.9.1 0.9.1 MIT + https://crates.io/crates/h2/0.3.26 0.3.26 MIT + https://crates.io/crates/h2/0.4.8 0.4.8 MIT https://crates.io/crates/hostname/0.3.1 0.3.1 MIT - https://crates.io/crates/http-body/0.4.5 0.4.5 MIT - https://crates.io/crates/hyper/0.14.27 0.14.27 MIT - https://crates.io/crates/is-terminal/0.4.12 0.4.12 MIT + https://crates.io/crates/hostname/0.4.0 0.4.0 MIT + https://crates.io/crates/http-body/0.4.6 0.4.6 MIT + https://crates.io/crates/http-body/1.0.1 1.0.1 MIT + https://crates.io/crates/http-body-util/0.1.3 0.1.3 MIT + https://crates.io/crates/hyper/0.14.32 0.14.32 MIT + https://crates.io/crates/hyper/1.6.0 1.6.0 MIT + https://crates.io/crates/hyper-util/0.1.10 0.1.10 MIT https://crates.io/crates/matchers/0.1.0 0.1.0 MIT - https://crates.io/crates/matches/0.1.10 0.1.10 MIT - https://crates.io/crates/mio/0.8.8 0.8.8 MIT + https://crates.io/crates/mio/1.0.3 1.0.3 MIT https://crates.io/crates/nom/7.1.3 7.1.3 MIT https://crates.io/crates/nu-ansi-term/0.46.0 0.46.0 MIT - https://crates.io/crates/openssl-sys/0.9.90 0.9.90 MIT - https://crates.io/crates/os_pipe/1.2.0 1.2.0 MIT + https://crates.io/crates/openssl-sys/0.9.106 0.9.106 MIT + https://crates.io/crates/os_pipe/1.2.1 1.2.1 MIT https://crates.io/crates/overload/0.1.1 0.1.1 MIT - https://crates.io/crates/parse-zoneinfo/0.3.0 0.3.0 MIT - https://crates.io/crates/phf/0.10.1 0.10.1 MIT - https://crates.io/crates/phf_codegen/0.10.0 0.10.0 MIT - https://crates.io/crates/phf_generator/0.10.0 0.10.0 MIT - https://crates.io/crates/phf_shared/0.10.0 0.10.0 MIT + https://crates.io/crates/parse-zoneinfo/0.3.1 0.3.1 MIT + https://crates.io/crates/phf/0.11.3 0.11.3 MIT + https://crates.io/crates/phf_codegen/0.11.3 0.11.3 MIT + https://crates.io/crates/phf_generator/0.11.3 0.11.3 MIT + https://crates.io/crates/phf_shared/0.11.3 0.11.3 MIT https://crates.io/crates/rdkafka/0.32.2 0.32.2 MIT - https://crates.io/crates/rdkafka-sys/4.5.0+1.9.2 4.5.0+1.9.2 MIT - https://crates.io/crates/redox_syscall/0.3.5 0.3.5 MIT - https://crates.io/crates/schannel/0.1.22 0.1.22 MIT - https://crates.io/crates/sharded-slab/0.1.4 0.1.4 MIT - https://crates.io/crates/shared_child/1.0.0 1.0.0 MIT - https://crates.io/crates/slab/0.4.8 0.4.8 MIT + https://crates.io/crates/rdkafka/0.37.0 0.37.0 MIT + https://crates.io/crates/rdkafka-sys/4.8.0+2.3.0 4.8.0+2.3.0 MIT + https://crates.io/crates/redox_syscall/0.5.10 0.5.10 MIT + https://crates.io/crates/schannel/0.1.27 0.1.27 MIT + https://crates.io/crates/sharded-slab/0.1.7 0.1.7 MIT + https://crates.io/crates/shared_child/1.0.1 1.0.1 MIT + https://crates.io/crates/slab/0.4.9 0.4.9 MIT https://crates.io/crates/spin/0.5.2 0.5.2 MIT - https://crates.io/crates/strsim/0.10.0 0.10.0 MIT - https://crates.io/crates/tera/1.19.0 1.19.0 MIT - https://crates.io/crates/tokio/1.29.1 1.29.1 MIT - https://crates.io/crates/tokio-macros/2.1.0 2.1.0 MIT + https://crates.io/crates/strsim/0.11.1 0.11.1 MIT + https://crates.io/crates/synstructure/0.13.1 0.13.1 MIT + https://crates.io/crates/tera/1.20.0 1.20.0 MIT + https://crates.io/crates/tokio/1.44.1 1.44.1 MIT + https://crates.io/crates/tokio-macros/2.5.0 2.5.0 MIT https://crates.io/crates/tokio-native-tls/0.3.1 0.3.1 MIT - https://crates.io/crates/tokio-stream/0.1.14 0.1.14 MIT - https://crates.io/crates/tokio-util/0.7.8 0.7.8 MIT + https://crates.io/crates/tokio-stream/0.1.17 0.1.17 MIT + https://crates.io/crates/tokio-util/0.7.14 0.7.14 MIT https://crates.io/crates/tonic/0.8.3 0.8.3 MIT https://crates.io/crates/tonic-build/0.8.4 0.8.4 MIT https://crates.io/crates/tower/0.4.13 0.4.13 MIT - https://crates.io/crates/tower-layer/0.3.2 0.3.2 MIT - https://crates.io/crates/tower-service/0.3.2 0.3.2 MIT - https://crates.io/crates/tracing/0.1.37 0.1.37 MIT - https://crates.io/crates/tracing-attributes/0.1.26 0.1.26 MIT - https://crates.io/crates/tracing-core/0.1.31 0.1.31 MIT + https://crates.io/crates/tower/0.5.2 0.5.2 MIT + https://crates.io/crates/tower-layer/0.3.3 0.3.3 MIT + https://crates.io/crates/tower-service/0.3.3 0.3.3 MIT + https://crates.io/crates/tracing/0.1.41 0.1.41 MIT + https://crates.io/crates/tracing-attributes/0.1.28 0.1.28 MIT + https://crates.io/crates/tracing-core/0.1.33 0.1.33 MIT https://crates.io/crates/tracing-futures/0.2.5 0.2.5 MIT - https://crates.io/crates/tracing-log/0.1.3 0.1.3 MIT - https://crates.io/crates/tracing-subscriber/0.3.17 0.3.17 MIT - https://crates.io/crates/try-lock/0.2.4 0.2.4 MIT - https://crates.io/crates/valuable/0.1.0 0.1.0 MIT + https://crates.io/crates/tracing-log/0.2.0 0.2.0 MIT + https://crates.io/crates/tracing-subscriber/0.3.19 0.3.19 MIT + https://crates.io/crates/try-lock/0.2.5 0.2.5 MIT + https://crates.io/crates/valuable/0.1.1 0.1.1 MIT + https://crates.io/crates/virtue/0.0.18 0.0.18 MIT https://crates.io/crates/want/0.3.1 0.3.1 MIT - https://crates.io/crates/which/4.4.0 4.4.0 MIT - https://crates.io/crates/winnow/0.5.3 0.5.3 MIT - https://crates.io/crates/winreg/0.10.1 0.10.1 MIT - https://crates.io/crates/winreg/0.50.0 0.50.0 MIT + https://crates.io/crates/which/4.4.2 4.4.2 MIT + https://crates.io/crates/winnow/0.7.4 0.7.4 MIT ======================================================================== MIT AND BSD-3-Clause licenses @@ -598,7 +665,8 @@ MIT AND BSD-3-Clause licenses The following components are provided under the MIT AND BSD-3-Clause License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/matchit/0.7.1 0.7.1 MIT AND BSD-3-Clause + https://crates.io/crates/matchit/0.7.3 0.7.3 MIT AND BSD-3-Clause + https://crates.io/crates/matchit/0.8.4 0.8.4 MIT AND BSD-3-Clause ======================================================================== MIT OR Unlicense licenses @@ -606,14 +674,14 @@ MIT OR Unlicense licenses The following components are provided under the MIT OR Unlicense License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/aho-corasick/1.0.2 1.0.2 MIT OR Unlicense - https://crates.io/crates/globset/0.4.12 0.4.12 MIT OR Unlicense - https://crates.io/crates/ignore/0.4.20 0.4.20 MIT OR Unlicense - https://crates.io/crates/memchr/2.5.0 2.5.0 MIT OR Unlicense + https://crates.io/crates/aho-corasick/1.1.3 1.1.3 MIT OR Unlicense + https://crates.io/crates/globset/0.4.16 0.4.16 MIT OR Unlicense + https://crates.io/crates/ignore/0.4.23 0.4.23 MIT OR Unlicense + https://crates.io/crates/memchr/2.7.4 2.7.4 MIT OR Unlicense https://crates.io/crates/regex-automata/0.1.10 0.1.10 MIT OR Unlicense https://crates.io/crates/same-file/1.0.6 1.0.6 MIT OR Unlicense - https://crates.io/crates/walkdir/2.3.3 2.3.3 MIT OR Unlicense - https://crates.io/crates/winapi-util/0.1.5 0.1.5 MIT OR Unlicense + https://crates.io/crates/walkdir/2.5.0 2.5.0 MIT OR Unlicense + https://crates.io/crates/winapi-util/0.1.9 0.1.9 MIT OR Unlicense ======================================================================== MulanPSL-2.0 licenses @@ -621,11 +689,37 @@ MulanPSL-2.0 licenses The following components are provided under the MulanPSL-2.0 License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/phper/0.12.0 0.12.0 MulanPSL-2.0 - https://crates.io/crates/phper-alloc/0.12.0 0.12.0 MulanPSL-2.0 - https://crates.io/crates/phper-build/0.12.0 0.12.0 MulanPSL-2.0 - https://crates.io/crates/phper-macros/0.12.0 0.12.0 MulanPSL-2.0 - https://crates.io/crates/phper-sys/0.12.1 0.12.1 MulanPSL-2.0 + https://crates.io/crates/phper/0.15.1 0.15.1 MulanPSL-2.0 + https://crates.io/crates/phper-alloc/0.15.0 0.15.0 MulanPSL-2.0 + https://crates.io/crates/phper-build/0.15.0 0.15.0 MulanPSL-2.0 + https://crates.io/crates/phper-macros/0.15.0 0.15.0 MulanPSL-2.0 + https://crates.io/crates/phper-sys/0.15.0 0.15.0 MulanPSL-2.0 + +======================================================================== +Unicode-3.0 licenses +======================================================================== +The following components are provided under the Unicode-3.0 License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/icu_collections/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_locid/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_locid_transform/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_locid_transform_data/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_normalizer/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_normalizer_data/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_properties/1.5.1 1.5.1 Unicode-3.0 + https://crates.io/crates/icu_properties_data/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_provider/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/icu_provider_macros/1.5.0 1.5.0 Unicode-3.0 + https://crates.io/crates/litemap/0.7.5 0.7.5 Unicode-3.0 + https://crates.io/crates/tinystr/0.7.6 0.7.6 Unicode-3.0 + https://crates.io/crates/writeable/0.5.5 0.5.5 Unicode-3.0 + https://crates.io/crates/yoke/0.7.5 0.7.5 Unicode-3.0 + https://crates.io/crates/yoke-derive/0.7.5 0.7.5 Unicode-3.0 + https://crates.io/crates/zerofrom/0.1.6 0.1.6 Unicode-3.0 + https://crates.io/crates/zerofrom-derive/0.1.6 0.1.6 Unicode-3.0 + https://crates.io/crates/zerovec/0.10.4 0.10.4 Unicode-3.0 + https://crates.io/crates/zerovec-derive/0.10.3 0.10.3 Unicode-3.0 ======================================================================== Unlicense licenses @@ -633,5 +727,5 @@ Unlicense licenses The following components are provided under the Unlicense License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/systemstat/0.2.3 0.2.3 Unlicense + https://crates.io/crates/systemstat/0.2.4 0.2.4 Unlicense diff --git a/docker/Dockerfile b/docker/Dockerfile index ba68d0e..412d9b7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,7 @@ ARG SKYWALKING_AGENT ENV RUSTUP_HOME=/usr/local/rustup \ CARGO_HOME=/usr/local/cargo \ PATH=/usr/local/cargo/bin:$PATH \ - RUST_VERSION=1.65.0 + RUST_VERSION=1.85.0 RUN apt update \ diff --git a/docs/en/contribution/compiling.md b/docs/en/contribution/compiling.md index 9b03a7f..5fa9240 100644 --- a/docs/en/contribution/compiling.md +++ b/docs/en/contribution/compiling.md @@ -20,7 +20,7 @@ brew install php ## Install Rust Environment -Install Rust 1.65.0+. +Install Rust 1.85.0+. For Linux user: diff --git a/docs/en/setup/service-agent/php-agent/README.md b/docs/en/setup/service-agent/php-agent/README.md index c7c2631..5464177 100644 --- a/docs/en/setup/service-agent/php-agent/README.md +++ b/docs/en/setup/service-agent/php-agent/README.md @@ -7,7 +7,7 @@ ## Requirements - GCC / Clang -- Rustc 1.65+ +- Rustc 1.85+ - Cargo - Libclang 9.0+ - Make @@ -35,7 +35,7 @@ The officially recommended way to install Rust is via [`rustup`](https://www.rus > so if you don't need multi version Rust, we recommend to install Rust by these > way: > -> 1. Install through OS package manager (The Rust version in the source must be >= 1.65). +> 1. Install through OS package manager (The Rust version in the source must be >= 1.85). > > 2. Through `rustup` but set `default-toolchain` to none. > diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 586fbd0..1ea05e8 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -14,5 +14,5 @@ # limitations under the License. [toolchain] -channel = "1.65" +channel = "1.85" components = ["clippy", "rustfmt"] diff --git a/scripts/Cargo.toml b/scripts/Cargo.toml index 30dec9a..234191d 100644 --- a/scripts/Cargo.toml +++ b/scripts/Cargo.toml @@ -25,10 +25,10 @@ license = { workspace = true } publish = false [dependencies] -anyhow = "1.0.72" -chrono = { version = "0.4.26", default-features = false, features = ["std"] } -clap = { version = "4.3.19", features = ["derive"] } -serde = { version = "1.0.180", features = ["derive"] } -tera = "1.19.0" -tracing = "0.1.37" -tracing-subscriber = "0.3.17" +anyhow = "1.0.97" +chrono = { version = "0.4.40", default-features = false, features = ["std"] } +clap = { version = "4.5.32", features = ["derive"] } +serde = { version = "1.0.219", features = ["derive"] } +tera = "1.20.0" +tracing = "0.1.41" +tracing-subscriber = "0.3.19" diff --git a/src/channel.rs b/src/channel.rs index 8976f86..872fdb5 100644 --- a/src/channel.rs +++ b/src/channel.rs @@ -29,7 +29,7 @@ fn channel_send(data: CollectItem, mut sender: T) -> anyhow::Result<()> where T: DerefMut, { - let content = bincode::serialize(&data)?; + let content = bincode::serde::encode_to_vec(&data, bincode::config::standard())?; sender.write_all(&content.len().to_le_bytes())?; sender.write_all(&content)?; diff --git a/src/execute.rs b/src/execute.rs index 4246142..04c7449 100644 --- a/src/execute.rs +++ b/src/execute.rs @@ -19,7 +19,7 @@ use crate::{ request::{HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME, IS_SWOOLE}, util::catch_unwind_result, }; -use anyhow::{bail, Context}; +use anyhow::{Context, bail}; use phper::{ objects::ZObj, strings::ZStr, @@ -70,163 +70,170 @@ static mut ORI_EXECUTE_EX: Option (execute_data, return_value), - (execute_data, return_value) => { - ori_execute_internal(execute_data, return_value); - return; - } - }; + unsafe { + let (execute_data, return_value) = match ( + ExecuteData::try_from_mut_ptr(execute_data), + ZVal::try_from_mut_ptr(return_value), + ) { + (Some(execute_data), Some(return_value)) => (execute_data, return_value), + (execute_data, return_value) => { + ori_execute_internal(execute_data, return_value); + return; + } + }; - let (function_name, class_name) = match get_function_and_class_name(execute_data) { - Ok(x) => x, - Err(err) => { - error!(?err, "get function and class name failed"); - ori_execute_internal(Some(execute_data), Some(return_value)); - return; - } - }; + let (function_name, class_name) = match get_function_and_class_name(execute_data) { + Ok(x) => x, + Err(err) => { + error!(?err, "get function and class name failed"); + ori_execute_internal(Some(execute_data), Some(return_value)); + return; + } + }; - trace!( - ?function_name, - ?class_name, - "execute_internal function and class name" - ); + trace!( + ?function_name, + ?class_name, + "execute_internal function and class name" + ); + + let function_name = match function_name { + Some(function_name) => function_name, + None => { + ori_execute_internal(Some(execute_data), Some(return_value)); + return; + } + }; - let function_name = match function_name { - Some(function_name) => function_name, - None => { + if function_name == HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME { ori_execute_internal(Some(execute_data), Some(return_value)); return; } - }; - if function_name == HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME { - ori_execute_internal(Some(execute_data), Some(return_value)); - return; - } + let Some((before, after)) = select_plugin_hook(class_name.as_deref(), &function_name) + else { + ori_execute_internal(Some(execute_data), Some(return_value)); + return; + }; - let Some((before, after)) = select_plugin_hook(class_name.as_deref(), &function_name) else { - ori_execute_internal(Some(execute_data), Some(return_value)); - return; - }; - - let request_id = infer_request_id(execute_data); - trace!( - ?request_id, - ?function_name, - ?class_name, - "execute_internal infer request id" - ); - - let result = catch_unwind_result(AssertUnwindSafe(|| before(request_id, execute_data))); - if let Err(err) = &result { - error!( + let request_id = infer_request_id(execute_data); + trace!( ?request_id, ?function_name, ?class_name, - ?err, - "before execute internal" + "execute_internal infer request id" ); - } - - ori_execute_internal(Some(execute_data), Some(return_value)); - // If before hook return error, don't execute the after hook. - if let Ok(data) = result { - if let Err(err) = catch_unwind_result(AssertUnwindSafe(|| { - after(request_id, data, execute_data, return_value) - })) { + let result = catch_unwind_result(AssertUnwindSafe(|| before(request_id, execute_data))); + if let Err(err) = &result { error!( ?request_id, ?function_name, ?class_name, ?err, - "after execute internal" + "before execute internal" ); } + + ori_execute_internal(Some(execute_data), Some(return_value)); + + // If before hook return error, don't execute the after hook. + if let Ok(data) = result { + if let Err(err) = catch_unwind_result(AssertUnwindSafe(|| { + after(request_id, data, execute_data, return_value) + })) { + error!( + ?request_id, + ?function_name, + ?class_name, + ?err, + "after execute internal" + ); + } + } } } unsafe extern "C" fn execute_ex(execute_data: *mut sys::zend_execute_data) { - let execute_data = match ExecuteData::try_from_mut_ptr(execute_data) { - Some(execute_data) => execute_data, - None => { - ori_execute_ex(None); - return; - } - }; + unsafe { + let execute_data = match ExecuteData::try_from_mut_ptr(execute_data) { + Some(execute_data) => execute_data, + None => { + ori_execute_ex(None); + return; + } + }; - let (function_name, class_name) = match get_function_and_class_name(execute_data) { - Ok(x) => x, - Err(err) => { - error!(?err, "get function and class name failed"); - ori_execute_ex(Some(execute_data)); - return; - } - }; + let (function_name, class_name) = match get_function_and_class_name(execute_data) { + Ok(x) => x, + Err(err) => { + error!(?err, "get function and class name failed"); + ori_execute_ex(Some(execute_data)); + return; + } + }; - trace!( - ?function_name, - ?class_name, - "execute_ex function and class name" - ); + trace!( + ?function_name, + ?class_name, + "execute_ex function and class name" + ); + + let function_name = match function_name { + Some(function_name) => function_name, + None => { + ori_execute_ex(Some(execute_data)); + return; + } + }; - let function_name = match function_name { - Some(function_name) => function_name, - None => { + let Some((before, after)) = select_plugin_hook(class_name.as_deref(), &function_name) + else { ori_execute_ex(Some(execute_data)); return; - } - }; + }; - let Some((before, after)) = select_plugin_hook(class_name.as_deref(), &function_name) else { - ori_execute_ex(Some(execute_data)); - return; - }; - - let request_id = infer_request_id(execute_data); - trace!( - ?request_id, - ?function_name, - ?class_name, - "execute_ex infer request id" - ); - - let result = catch_unwind_result(AssertUnwindSafe(|| before(request_id, execute_data))); - if let Err(err) = &result { - error!( + let request_id = infer_request_id(execute_data); + trace!( ?request_id, ?function_name, ?class_name, - ?err, - "before execute ex" + "execute_ex infer request id" ); - } - - ori_execute_ex(Some(execute_data)); - // If before hook return error, don't execute the after hook. - if let Ok(data) = result { - let mut null = ZVal::from(()); - let return_value = match ZVal::try_from_mut_ptr((*execute_data.as_mut_ptr()).return_value) { - Some(return_value) => return_value, - None => &mut null, - }; - if let Err(err) = catch_unwind_result(AssertUnwindSafe(|| { - after(request_id, data, execute_data, return_value) - })) { + let result = catch_unwind_result(AssertUnwindSafe(|| before(request_id, execute_data))); + if let Err(err) = &result { error!( ?request_id, ?function_name, ?class_name, ?err, - "after execute ex" + "before execute ex" ); } + + ori_execute_ex(Some(execute_data)); + + // If before hook return error, don't execute the after hook. + if let Ok(data) = result { + let mut null = ZVal::from(()); + let return_value = + match ZVal::try_from_mut_ptr((*execute_data.as_mut_ptr()).return_value) { + Some(return_value) => return_value, + None => &mut null, + }; + if let Err(err) = catch_unwind_result(AssertUnwindSafe(|| { + after(request_id, data, execute_data, return_value) + })) { + error!( + ?request_id, + ?function_name, + ?class_name, + ?err, + "after execute ex" + ); + } + } } } @@ -305,11 +312,7 @@ fn infer_request_id(execute_data: &mut ExecuteData) -> Option { let mut prev_execute_data_ptr = execute_data.as_mut_ptr(); loop { - let Some(prev_execute_data) = - (unsafe { ExecuteData::try_from_mut_ptr(prev_execute_data_ptr) }) - else { - return None; - }; + let prev_execute_data = (unsafe { ExecuteData::try_from_mut_ptr(prev_execute_data_ptr) })?; let func_name = prev_execute_data.func().get_function_name(); if !func_name .map(|s| s == &HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME.as_bytes()) @@ -318,9 +321,7 @@ fn infer_request_id(execute_data: &mut ExecuteData) -> Option { prev_execute_data_ptr = unsafe { (*prev_execute_data_ptr).prev_execute_data }; continue; } - let Some(request) = prev_execute_data.get_mut_parameter(0).as_mut_z_obj() else { - return None; - }; + let request = prev_execute_data.get_mut_parameter(0).as_mut_z_obj()?; match request.get_mut_property("fd").as_long() { Some(fd) => return Some(fd), None => { @@ -356,146 +357,155 @@ pub mod observer { pub unsafe extern "C" fn observer_handler( execute_data: *mut sys::zend_execute_data, ) -> sys::zend_observer_fcall_handlers { - let Some(execute_data) = ExecuteData::try_from_mut_ptr(execute_data) else { - return Default::default(); - }; - - let (function_name, class_name) = match get_function_and_class_name(execute_data) { - Ok(x) => x, - Err(err) => { - error!(?err, "get function and class name failed"); + unsafe { + let Some(execute_data) = ExecuteData::try_from_mut_ptr(execute_data) else { return Default::default(); - } - }; + }; - trace!( - ?function_name, - ?class_name, - "observer_handler function and class name" - ); + let (function_name, class_name) = match get_function_and_class_name(execute_data) { + Ok(x) => x, + Err(err) => { + error!(?err, "get function and class name failed"); + return Default::default(); + } + }; - let Some(function_name) = function_name else { - return Default::default(); - }; + trace!( + ?function_name, + ?class_name, + "observer_handler function and class name" + ); - if function_name == HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME { - return Default::default(); - } + let Some(function_name) = function_name else { + return Default::default(); + }; - if select_plugin_hook(class_name.as_deref(), &function_name).is_none() { - return Default::default(); - } + if function_name == HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME { + return Default::default(); + } - sys::zend_observer_fcall_handlers { - begin: Some(observer_begin), - end: Some(observer_end), + if select_plugin_hook(class_name.as_deref(), &function_name).is_none() { + return Default::default(); + } + + sys::zend_observer_fcall_handlers { + begin: Some(observer_begin), + end: Some(observer_end), + } } } + #[allow(static_mut_refs)] unsafe extern "C" fn observer_begin(execute_data: *mut sys::zend_execute_data) { - let Some(execute_data) = ExecuteData::try_from_mut_ptr(execute_data) else { - return; - }; - trace!(execute_data_ptr=?execute_data.as_ptr(), "start observer_begin"); - - let Ok((function_name, class_name)) = get_function_and_class_name(execute_data) else { - return; - }; - - trace!( - ?function_name, - ?class_name, - "observer_begin function and class name" - ); + unsafe { + let Some(execute_data) = ExecuteData::try_from_mut_ptr(execute_data) else { + return; + }; + trace!(execute_data_ptr=?execute_data.as_ptr(), "start observer_begin"); - let Some(function_name) = function_name else { - return; - }; + let Ok((function_name, class_name)) = get_function_and_class_name(execute_data) else { + return; + }; - let Some((before, _)) = select_plugin_hook(class_name.as_deref(), &function_name) else { - return; - }; + trace!( + ?function_name, + ?class_name, + "observer_begin function and class name" + ); - let request_id = infer_request_id(execute_data); - trace!( - ?request_id, - ?function_name, - ?class_name, - "observer_begin infer request id" - ); + let Some(function_name) = function_name else { + return; + }; - let result = - match catch_unwind_result(AssertUnwindSafe(|| before(request_id, execute_data))) { - Ok(result) => result, - Err(err) => { - error!( - ?request_id, - ?function_name, - ?class_name, - ?err, - "run observer_begin hook failed" - ); - return; - } + let Some((before, _)) = select_plugin_hook(class_name.as_deref(), &function_name) + else { + return; }; - RESULT_MAP.insert(execute_data.as_ptr(), result); + let request_id = infer_request_id(execute_data); + trace!( + ?request_id, + ?function_name, + ?class_name, + "observer_begin infer request id" + ); + + let result = + match catch_unwind_result(AssertUnwindSafe(|| before(request_id, execute_data))) { + Ok(result) => result, + Err(err) => { + error!( + ?request_id, + ?function_name, + ?class_name, + ?err, + "run observer_begin hook failed" + ); + return; + } + }; + + RESULT_MAP.insert(execute_data.as_ptr(), result); + } } + #[allow(static_mut_refs)] unsafe extern "C" fn observer_end( execute_data: *mut sys::zend_execute_data, retval: *mut sys::zval, ) { - let Some(execute_data) = ExecuteData::try_from_mut_ptr(execute_data) else { - return; - }; - trace!(execute_data_ptr=?execute_data.as_ptr(), "start observer_end"); - - let Some((_, result)) = RESULT_MAP.remove(&execute_data.as_ptr()) else { - return; - }; + unsafe { + let Some(execute_data) = ExecuteData::try_from_mut_ptr(execute_data) else { + return; + }; + trace!(execute_data_ptr=?execute_data.as_ptr(), "start observer_end"); - let mut null = ZVal::from(()); - let ret = match ZVal::try_from_mut_ptr(retval) { - Some(ret) => ret, - None => &mut null, - }; + let Some((_, result)) = RESULT_MAP.remove(&execute_data.as_ptr()) else { + return; + }; - let Ok((function_name, class_name)) = get_function_and_class_name(execute_data) else { - return; - }; + let mut null = ZVal::from(()); + let ret = match ZVal::try_from_mut_ptr(retval) { + Some(ret) => ret, + None => &mut null, + }; - trace!( - ?function_name, - ?class_name, - "observer_end function and class name" - ); + let Ok((function_name, class_name)) = get_function_and_class_name(execute_data) else { + return; + }; - let Some(function_name) = function_name else { - return; - }; + trace!( + ?function_name, + ?class_name, + "observer_end function and class name" + ); - let Some((_, after)) = select_plugin_hook(class_name.as_deref(), &function_name) else { - return; - }; + let Some(function_name) = function_name else { + return; + }; - let request_id = infer_request_id(execute_data); - trace!( - ?request_id, - ?function_name, - ?class_name, - "observer_end infer request id" - ); + let Some((_, after)) = select_plugin_hook(class_name.as_deref(), &function_name) else { + return; + }; - if let Err(err) = catch_unwind_result(AssertUnwindSafe(|| { - after(request_id, result, execute_data, ret) - })) { - error!( + let request_id = infer_request_id(execute_data); + trace!( ?request_id, ?function_name, ?class_name, - ?err, - "run observer_end hook failed" + "observer_end infer request id" ); - }; + + if let Err(err) = catch_unwind_result(AssertUnwindSafe(|| { + after(request_id, result, execute_data, ret) + })) { + error!( + ?request_id, + ?function_name, + ?class_name, + ?err, + "run observer_end hook failed" + ); + }; + } } } diff --git a/src/module.rs b/src/module.rs index 2a9ff3a..c9eea05 100644 --- a/src/module.rs +++ b/src/module.rs @@ -17,7 +17,7 @@ use crate::{ channel::Reporter, execute::{register_execute_functions, register_observer_handlers}, log::PsrLogLevel, - util::{get_sapi_module_name, get_str_ini_with_default, IPS}, + util::{IPS, get_sapi_module_name, get_str_ini_with_default}, worker::init_worker, *, }; @@ -40,7 +40,7 @@ use std::{ }; use time::format_description::well_known::Rfc3339; use tracing::{debug, error, info, metadata::LevelFilter}; -use tracing_subscriber::{fmt::time::OffsetTime, EnvFilter, FmtSubscriber}; +use tracing_subscriber::{EnvFilter, FmtSubscriber, fmt::time::OffsetTime}; static IS_ENABLE: Lazy = Lazy::new(|| { if !ini_get::(SKYWALKING_AGENT_ENABLE) { @@ -305,7 +305,7 @@ fn try_init_logger() -> anyhow::Result<()> { #[inline] fn get_module_registry() -> &'static ZArr { - unsafe { ZArr::from_ptr(&sys::module_registry) } + unsafe { ZArr::from_ptr(&raw const sys::module_registry) } } #[inline] diff --git a/src/plugin/mod.rs b/src/plugin/mod.rs index aa36423..4f7623e 100644 --- a/src/plugin/mod.rs +++ b/src/plugin/mod.rs @@ -74,6 +74,7 @@ pub trait Plugin { ) -> Option<(Box, Box)>; } +#[allow(static_mut_refs)] // TODO: Swith to use thread_local pub fn select_plugin_hook( class_name: Option<&str>, function_name: &str, ) -> Option<(&'static BeforeExecuteHook, &'static AfterExecuteHook)> { diff --git a/src/plugin/plugin_amqplib.rs b/src/plugin/plugin_amqplib.rs index aa86aa6..57ae25e 100644 --- a/src/plugin/plugin_amqplib.rs +++ b/src/plugin/plugin_amqplib.rs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, Plugin}; +use super::{Plugin, log_exception}; use crate::{ component::COMPONENT_AMQP_PRODUCER_ID, context::{RequestContext, SW_HEADER}, - execute::{get_this_mut, validate_num_args, AfterExecuteHook, BeforeExecuteHook}, + execute::{AfterExecuteHook, BeforeExecuteHook, get_this_mut, validate_num_args}, tag::{TAG_MQ_BROKER, TAG_MQ_QUEUE, TAG_MQ_TOPIC}, }; use anyhow::Context; diff --git a/src/plugin/plugin_curl.rs b/src/plugin/plugin_curl.rs index ab31220..f50e5e3 100644 --- a/src/plugin/plugin_curl.rs +++ b/src/plugin/plugin_curl.rs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, Plugin}; +use super::{Plugin, log_exception}; use crate::{ component::COMPONENT_PHP_CURL_ID, context::{RequestContext, SW_HEADER}, - execute::{validate_num_args, AfterExecuteHook, BeforeExecuteHook, Noop}, + execute::{AfterExecuteHook, BeforeExecuteHook, Noop, validate_num_args}, }; use anyhow::Context; use phper::{ diff --git a/src/plugin/plugin_memcache.rs b/src/plugin/plugin_memcache.rs index cba62bc..2b6fb6c 100644 --- a/src/plugin/plugin_memcache.rs +++ b/src/plugin/plugin_memcache.rs @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, style::ApiStyle, Plugin}; +use super::{Plugin, log_exception, style::ApiStyle}; use crate::{ component::COMPONENT_PHP_MEMCACHED_ID, context::RequestContext, diff --git a/src/plugin/plugin_memcached.rs b/src/plugin/plugin_memcached.rs index 1e480f3..047ace7 100644 --- a/src/plugin/plugin_memcached.rs +++ b/src/plugin/plugin_memcached.rs @@ -15,11 +15,11 @@ use std::{any::Any, collections::HashMap}; -use super::{log_exception, Plugin}; +use super::{Plugin, log_exception}; use crate::{ component::COMPONENT_PHP_MEMCACHED_ID, context::RequestContext, - execute::{get_this_mut, AfterExecuteHook, BeforeExecuteHook}, + execute::{AfterExecuteHook, BeforeExecuteHook, get_this_mut}, tag::{CacheOp, TAG_CACHE_CMD, TAG_CACHE_KEY, TAG_CACHE_OP, TAG_CACHE_TYPE}, }; use anyhow::Context; diff --git a/src/plugin/plugin_mongodb.rs b/src/plugin/plugin_mongodb.rs index 0ee2ade..6e423cb 100644 --- a/src/plugin/plugin_mongodb.rs +++ b/src/plugin/plugin_mongodb.rs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, Plugin}; +use super::{Plugin, log_exception}; use crate::{ component::COMPONENT_MONGODB_ID, context::RequestContext, - execute::{get_this_mut, AfterExecuteHook, BeforeExecuteHook}, + execute::{AfterExecuteHook, BeforeExecuteHook, get_this_mut}, tag::TAG_DB_TYPE, }; use phper::{ diff --git a/src/plugin/plugin_mysqli.rs b/src/plugin/plugin_mysqli.rs index cc2ad0f..6e5c261 100644 --- a/src/plugin/plugin_mysqli.rs +++ b/src/plugin/plugin_mysqli.rs @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, style::ApiStyle, Plugin}; +use super::{Plugin, log_exception, style::ApiStyle}; use crate::{ component::COMPONENT_PHP_MYSQLI_ID, context::RequestContext, diff --git a/src/plugin/plugin_pdo.rs b/src/plugin/plugin_pdo.rs index 00d6ff9..55169cd 100644 --- a/src/plugin/plugin_pdo.rs +++ b/src/plugin/plugin_pdo.rs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, Plugin}; +use super::{Plugin, log_exception}; use crate::{ component::COMPONENT_PHP_PDO_ID, context::RequestContext, - execute::{get_this_mut, validate_num_args, AfterExecuteHook, BeforeExecuteHook}, + execute::{AfterExecuteHook, BeforeExecuteHook, get_this_mut, validate_num_args}, tag::{TAG_DB_STATEMENT, TAG_DB_TYPE}, }; use anyhow::Context; @@ -179,21 +179,27 @@ fn hack_dtor(this: &mut ZObj, new_dtor: sys::zend_object_dtor_obj_t) { } unsafe extern "C" fn pdo_dtor(object: *mut sys::zend_object) { - debug!("call PDO dtor"); - dtor(object); + unsafe { + debug!("call PDO dtor"); + dtor(object); + } } unsafe extern "C" fn pdo_statement_dtor(object: *mut sys::zend_object) { - debug!("call PDOStatement dtor"); - dtor(object); + unsafe { + debug!("call PDOStatement dtor"); + dtor(object); + } } unsafe extern "C" fn dtor(object: *mut sys::zend_object) { - let handle = ZObj::from_ptr(object).handle(); + unsafe { + let handle = ZObj::from_ptr(object).handle(); - DSN_MAP.remove(&handle); - if let Some((_, Some(dtor))) = DTOR_MAP.remove(&handle) { - dtor(object); + DSN_MAP.remove(&handle); + if let Some((_, Some(dtor))) = DTOR_MAP.remove(&handle) { + dtor(object); + } } } diff --git a/src/plugin/plugin_predis.rs b/src/plugin/plugin_predis.rs index 6ed0ac8..31aae21 100644 --- a/src/plugin/plugin_predis.rs +++ b/src/plugin/plugin_predis.rs @@ -17,7 +17,7 @@ use super::Plugin; use crate::{ component::COMPONENT_PHP_PREDIS_ID, context::RequestContext, - execute::{get_this_mut, validate_num_args, AfterExecuteHook, BeforeExecuteHook}, + execute::{AfterExecuteHook, BeforeExecuteHook, get_this_mut, validate_num_args}, plugin::log_exception, tag::{TAG_CACHE_CMD, TAG_CACHE_KEY, TAG_CACHE_OP, TAG_CACHE_TYPE}, }; @@ -279,12 +279,12 @@ impl PredisPlugin { let host = host.expect_z_str()?.to_str()?; let port = parameters.call("__get", [ZVal::from("port")])?; - let port = if let Some(port) = port.as_long() { - port.to_string() - } else if let Some(port) = port.as_z_str() { - port.to_str().unwrap_or("0").to_string() - } else { - "0".to_string() + let port = match port.as_long() { + Some(port) => port.to_string(), + _ => match port.as_z_str() { + Some(port) => port.to_str().unwrap_or("0").to_string(), + _ => "0".to_string(), + }, }; Ok(format!("{}:{}", host, port)) diff --git a/src/plugin/plugin_psr3.rs b/src/plugin/plugin_psr3.rs index af02fce..9e4a2c7 100644 --- a/src/plugin/plugin_psr3.rs +++ b/src/plugin/plugin_psr3.rs @@ -47,7 +47,7 @@ impl Plugin for Psr3Plugin { fn parent_classes(&self) -> Option>> { Some(vec![ - ClassEntry::from_globals(r"Psr\Log\LoggerInterface").ok() + ClassEntry::from_globals(r"Psr\Log\LoggerInterface").ok(), ]) } @@ -57,9 +57,7 @@ impl Plugin for Psr3Plugin { Box, Box, )> { - let Some(class_name) = class_name else { - return None; - }; + let class_name = class_name?; match &*function_name.to_uppercase() { "EMERGENCY" | "ALERT" | "CRITICAL" | "ERROR" | "WARNING" | "NOTICE" | "INFO" | "DEBUG" => { @@ -158,10 +156,9 @@ impl Psr3Plugin { if let Some(message) = message.as_z_str() { Ok(message.to_str()?.to_string()) } else if let Some(message) = message.as_mut_z_obj() { - if let Some(message) = Self::cast_object_to_string(message)? { - Ok(message) - } else { - Err("message hasn't __toString method".into()) + match Self::cast_object_to_string(message)? { + Some(message) => Ok(message), + _ => Err("message hasn't __toString method".into()), } } else { Err("unknown message type".into()) diff --git a/src/plugin/plugin_redis.rs b/src/plugin/plugin_redis.rs index 680602d..9b4feb4 100644 --- a/src/plugin/plugin_redis.rs +++ b/src/plugin/plugin_redis.rs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{log_exception, Plugin}; +use super::{Plugin, log_exception}; use crate::{ component::COMPONENT_PHP_REDIS_ID, context::RequestContext, - execute::{get_this_mut, AfterExecuteHook, BeforeExecuteHook, Noop}, + execute::{AfterExecuteHook, BeforeExecuteHook, Noop, get_this_mut}, tag::{TAG_CACHE_CMD, TAG_CACHE_KEY, TAG_CACHE_OP, TAG_CACHE_TYPE}, }; use anyhow::Context; @@ -341,13 +341,15 @@ fn hack_free(this: &mut ZObj, new_free: sys::zend_object_free_obj_t) { } unsafe extern "C" fn redis_dtor(object: *mut sys::zend_object) { - debug!("call Redis free"); + unsafe { + debug!("call Redis free"); - let handle = ZObj::from_ptr(object).handle(); + let handle = ZObj::from_ptr(object).handle(); - PEER_MAP.remove(&handle); - if let Some((_, Some(free))) = FREE_MAP.remove(&handle) { - free(object); + PEER_MAP.remove(&handle); + if let Some((_, Some(free))) = FREE_MAP.remove(&handle) { + free(object); + } } } diff --git a/src/plugin/plugin_swoole.rs b/src/plugin/plugin_swoole.rs index 93ce2f4..b9c1e38 100644 --- a/src/plugin/plugin_swoole.rs +++ b/src/plugin/plugin_swoole.rs @@ -14,7 +14,7 @@ // limitations under the License. use crate::{ - execute::{get_this_mut, validate_num_args, AfterExecuteHook, BeforeExecuteHook, Noop}, + execute::{AfterExecuteHook, BeforeExecuteHook, Noop, get_this_mut, validate_num_args}, plugin::Plugin, request::{ HACK_SWOOLE_ON_REQUEST_FUNCTION_NAME, IS_SWOOLE, ORI_SWOOLE_ON_REQUEST, diff --git a/src/request.rs b/src/request.rs index 0bddbc9..a787cf7 100644 --- a/src/request.rs +++ b/src/request.rs @@ -16,10 +16,10 @@ use crate::{ component::COMPONENT_PHP_ID, context::RequestContext, - module::{is_enable, INJECT_CONTEXT, SKYWALKING_VERSION}, + module::{INJECT_CONTEXT, SKYWALKING_VERSION, is_enable}, util::{catch_unwind_result, get_sapi_module_name, z_val_to_string}, }; -use anyhow::{anyhow, Context}; +use anyhow::{Context, anyhow}; use dashmap::DashMap; use once_cell::sync::Lazy; use phper::{arrays::ZArr, eg, pg, sg, sys, values::ZVal}; @@ -151,7 +151,7 @@ fn get_page_request_method(server: &ZArr) -> String { fn get_page_request_server<'a>() -> anyhow::Result<&'a ZArr> { unsafe { - let symbol_table = ZArr::from_mut_ptr(&mut eg!(symbol_table)); + let symbol_table = ZArr::from_mut_ptr(&raw mut eg!(symbol_table)); let carrier = symbol_table .get("_SERVER") .and_then(|carrier| carrier.as_z_arr()) @@ -162,7 +162,7 @@ fn get_page_request_server<'a>() -> anyhow::Result<&'a ZArr> { fn get_mut_page_request_server<'a>() -> anyhow::Result<&'a mut ZArr> { unsafe { - let symbol_table = ZArr::from_mut_ptr(&mut eg!(symbol_table)); + let symbol_table = ZArr::from_mut_ptr(&raw mut eg!(symbol_table)); let carrier = symbol_table .get_mut("_SERVER") .and_then(|carrier| carrier.as_mut_z_arr()) @@ -365,7 +365,7 @@ fn finish_request_context(request_id: Option, status_code: i32) -> crate::R mut entry_span, } = RequestContext::remove_global(request_id).context("request context not exists")?; - entry_span.add_tag("http.status_code", &status_code.to_string()); + entry_span.add_tag("http.status_code", status_code.to_string()); if status_code >= 400 { entry_span.span_object_mut().is_error = true; } diff --git a/src/util.rs b/src/util.rs index 6ad8bd8..8f0ad98 100644 --- a/src/util.rs +++ b/src/util.rs @@ -18,7 +18,7 @@ use once_cell::sync::Lazy; use phper::{ini::ini_get, sys, values::ZVal}; use std::{ ffi::CStr, - panic::{catch_unwind, UnwindSafe}, + panic::{UnwindSafe, catch_unwind}, }; use systemstat::{IpAddr, Platform, System}; @@ -49,11 +49,7 @@ pub static IPS: Lazy> = Lazy::new(|| { }) .collect::>(); - if addrs.is_empty() { - None - } else { - Some(addrs) - } + if addrs.is_empty() { None } else { Some(addrs) } }) .unwrap_or_else(|| vec!["127.0.0.1".to_owned()]) }); @@ -69,15 +65,13 @@ pub fn catch_unwind_result crate::Result + UnwindSafe, R>( ) -> crate::Result { match catch_unwind(f) { Ok(r) => r, - Err(e) => { - if let Some(s) = e.downcast_ref::<&str>() { - Err(anyhow!("paniced: {}", s).into()) - } else if let Some(s) = e.downcast_ref::() { - Err(anyhow!("paniced: {}", s).into()) - } else { - Err(anyhow!("paniced").into()) - } - } + Err(e) => match e.downcast_ref::<&str>() { + Some(s) => Err(anyhow!("paniced: {}", s).into()), + _ => match e.downcast_ref::() { + Some(s) => Err(anyhow!("paniced: {}", s).into()), + _ => Err(anyhow!("paniced").into()), + }, + }, } } diff --git a/src/worker.rs b/src/worker.rs index 145b9fb..c01f7c5 100644 --- a/src/worker.rs +++ b/src/worker.rs @@ -14,18 +14,18 @@ // limitations under the License. use crate::module::{ - is_standalone_reporter_type, AUTHENTICATION, ENABLE_TLS, HEARTBEAT_PERIOD, - PROPERTIES_REPORT_PERIOD_FACTOR, REPORTER_TYPE, SERVER_ADDR, SERVICE_INSTANCE, SERVICE_NAME, - SOCKET_FILE_PATH, SSL_CERT_CHAIN_PATH, SSL_KEY_PATH, SSL_TRUSTED_CA_PATH, WORKER_THREADS, + AUTHENTICATION, ENABLE_TLS, HEARTBEAT_PERIOD, PROPERTIES_REPORT_PERIOD_FACTOR, REPORTER_TYPE, + SERVER_ADDR, SERVICE_INSTANCE, SERVICE_NAME, SOCKET_FILE_PATH, SSL_CERT_CHAIN_PATH, + SSL_KEY_PATH, SSL_TRUSTED_CA_PATH, WORKER_THREADS, is_standalone_reporter_type, }; #[cfg(feature = "kafka-reporter")] use crate::module::{KAFKA_BOOTSTRAP_SERVERS, KAFKA_PRODUCER_CONFIG}; #[cfg(feature = "kafka-reporter")] use skywalking_php_worker::reporter::KafkaReporterConfiguration; use skywalking_php_worker::{ - new_tokio_runtime, + HeartBeatConfiguration, WorkerConfiguration, new_tokio_runtime, reporter::{GrpcReporterConfiguration, ReporterConfiguration}, - start_worker, HeartBeatConfiguration, WorkerConfiguration, + start_worker, }; use std::{cmp::Ordering, num::NonZeroUsize, process::exit, thread::available_parallelism}; use tracing::error; diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 7d99092..cea4285 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -13,17 +13,17 @@ // See the License for the specific language governing permissions and // limitations under the License. -use anyhow::{bail, Context}; +use anyhow::{Context, bail}; use axum::{ + Extension, Router, body::Body, extract::ConnectInfo, http::{Request, StatusCode}, response::IntoResponse, routing::any, - Extension, Router, }; use futures_util::future::join_all; -use libc::{kill, pid_t, SIGTERM}; +use libc::{SIGTERM, kill, pid_t}; use once_cell::sync::Lazy; use std::{ env, @@ -41,7 +41,7 @@ use tokio::{ task::JoinHandle, }; use tokio_stream::StreamExt; -use tracing::{error, info, instrument, Level}; +use tracing::{Level, error, info, instrument}; use tracing_subscriber::FmtSubscriber; pub const PROCESS_LOG_LEVEL: &str = "DEBUG"; @@ -86,8 +86,8 @@ pub struct Fixture { pub async fn setup() -> Fixture { setup_logging(); info!( - TARGET = &*TARGET, - EXT = &*EXT, + TARGET = TARGET, + EXT = EXT, ENABLE_ZEND_OBSERVER = &*ENABLE_ZEND_OBSERVER, "setup fixture" ); @@ -149,18 +149,24 @@ async fn setup_http_proxy_server(http_addr: &str, fpm_addr: &'static str) { info!(?state, "start http proxy server"); let app = Router::new() - .route("/*path", any(http_proxy_fpm_handler)) + .route("/{*path}", any(http_proxy_fpm_handler)) .layer(Extension(state.clone())); - axum::Server::bind(&state.http_addr) - .serve(app.into_make_service_with_connect_info::()) + + let listener = tokio::net::TcpListener::bind(&state.http_addr) .await .unwrap(); + axum::serve( + listener, + app.into_make_service_with_connect_info::(), + ) + .await + .unwrap(); } #[instrument(skip_all)] async fn http_proxy_fpm_handler( ConnectInfo(remote_addr): ConnectInfo, Extension(state): Extension>, - mut req: Request, + req: Request, ) -> impl IntoResponse { let fut = async move { let method = &req.method().to_string(); @@ -173,7 +179,7 @@ async fn http_proxy_fpm_handler( let mut params = fastcgi_client::Params::default() .request_method(method) - .query_string(&*query) + .query_string(query) .server_addr(state.http_addr.ip().to_string()) .server_port(state.http_addr.port()) .remote_addr(remote_addr.ip().to_string()) @@ -202,12 +208,13 @@ async fn http_proxy_fpm_handler( } let mut buffer = Vec::new(); - while let Some(buf) = req.body_mut().next().await { + let mut body_stream = req.into_body().into_data_stream(); + while let Some(buf) = body_stream.next().await { let buf = buf.context("read body failed")?; buffer.extend_from_slice(&buf); } - let params = params_set_script(params, &path, &query); + let params = params_set_script(params, path, query); info!(?params, "proxy http to php-fpm"); @@ -313,7 +320,7 @@ fn setup_php_fpm(index: usize, fpm_addr: &str) -> Child { "skywalking_agent.psr_logging_level=Warning", ]; info!(cmd = args.join(" "), "start command"); - let child = Command::new(&args[0]) + let child = Command::new(args[0]) .args(&args[1..]) .stdin(Stdio::null()) .stdout(File::create("/tmp/fpm-skywalking-stdout.log").unwrap()) @@ -360,7 +367,7 @@ fn setup_php_swoole(index: usize) -> Child { &format!("tests/php/swoole/main.{}.php", index), ]; info!(cmd = args.join(" "), "start command"); - let child = Command::new(&args[0]) + let child = Command::new(args[0]) .args(&args[1..]) .stdin(Stdio::null()) .stdout(File::create("/tmp/swoole-skywalking-stdout.log").unwrap()) diff --git a/tests/e2e.rs b/tests/e2e.rs index 4c96111..97ba724 100644 --- a/tests/e2e.rs +++ b/tests/e2e.rs @@ -19,7 +19,7 @@ use crate::common::{ COLLECTOR_HTTP_ADDRESS, HTTP_CLIENT, PROXY_SERVER_1_ADDRESS, SWOOLE_SERVER_1_ADDRESS, SWOOLE_SERVER_2_ADDRESS, }; -use reqwest::{header::CONTENT_TYPE, RequestBuilder, StatusCode}; +use reqwest::{RequestBuilder, StatusCode, header::CONTENT_TYPE}; use std::{ future::Future, panic::{catch_unwind, resume_unwind}, diff --git a/worker/Cargo.toml b/worker/Cargo.toml index a6f6d82..353c19f 100644 --- a/worker/Cargo.toml +++ b/worker/Cargo.toml @@ -26,25 +26,24 @@ readme = "README.md" publish = false [features] -standalone = ["clap", "clap_lex", "tracing-subscriber"] +standalone = ["clap", "tracing-subscriber"] kafka-reporter = ["skywalking/kafka-reporter", "rdkafka/sasl"] [dependencies] -anyhow = { version = "1.0.72", features = ["backtrace"] } -bincode = "1.3.3" -clap = { version = "=4.3.24", features = ["derive"], optional = true } -clap_lex = { version = "=0.5.0", optional = true } -libc = "0.2.147" -once_cell = "1.18.0" -prost = "0.11.9" -rdkafka = { version = "0.32.2", optional = true } -serde_json = { version = "1.0.104", features = ["preserve_order"] } +anyhow = { version = "1.0.97", features = ["backtrace"] } +bincode = { workspace = true } +clap = { version = "4.5.32", features = ["derive"], optional = true } +libc = "0.2.171" +once_cell = "1.21.1" +prost = "0.13.5" +rdkafka = { version = "0.37.0", optional = true } +serde_json = { version = "1.0.140", features = ["preserve_order"] } skywalking = { version = "0.8.0", features = ["management"] } -tokio = { version = "1.29.1", features = ["full"] } -tokio-stream = "0.1.14" +tokio = { version = "1.44.1", features = ["full"] } +tokio-stream = "0.1.17" tonic = { version = "0.8.3", features = ["tls", "tls-roots"] } -tracing = { version = "0.1.37", features = ["attributes", "log"] } -tracing-subscriber = { version = "0.3.17", features = ["env-filter"], optional = true } +tracing = { version = "0.1.41", features = ["attributes", "log"] } +tracing-subscriber = { version = "0.3.19", features = ["env-filter"], optional = true } [[bin]] name = "skywalking-php-worker" diff --git a/worker/src/channel.rs b/worker/src/channel.rs index 6dcdd2a..2192ef5 100644 --- a/worker/src/channel.rs +++ b/worker/src/channel.rs @@ -26,7 +26,7 @@ pub async fn channel_receive(receiver: &mut tokio::net::UnixStream) -> anyhow::R let mut content = vec![0u8; size]; receiver.read_exact(&mut content).await?; - let item = bincode::deserialize(&content)?; + let (item, _) = bincode::serde::decode_from_slice(&content, bincode::config::standard())?; Ok(item) } diff --git a/worker/src/lib.rs b/worker/src/lib.rs index 0348456..45df23f 100644 --- a/worker/src/lib.rs +++ b/worker/src/lib.rs @@ -18,7 +18,7 @@ pub mod reporter; use crate::{ channel::TxReporter, - reporter::{run_reporter, ReporterConfiguration}, + reporter::{ReporterConfiguration, run_reporter}, }; use skywalking::{ management::{instance::Properties, manager::Manager}, @@ -35,7 +35,7 @@ use tokio::{ net::UnixListener, runtime::{self, Runtime}, select, - signal::unix::{signal, SignalKind}, + signal::unix::{SignalKind, signal}, sync::mpsc::{self, error::TrySendError}, }; use tonic::async_trait; @@ -166,7 +166,7 @@ struct WorkerExitGuard(PathBuf); impl Drop for WorkerExitGuard { fn drop(&mut self) { - let Self(ref socket_file) = self; + let &mut Self(ref socket_file) = self; info!(?socket_file, "Remove socket file"); if let Err(err) = fs::remove_file(socket_file) { error!(?err, "Remove socket file failed"); diff --git a/worker/src/main.rs b/worker/src/main.rs index d924e1f..b72513d 100644 --- a/worker/src/main.rs +++ b/worker/src/main.rs @@ -15,9 +15,9 @@ use clap::Parser; use skywalking_php_worker::{ - new_tokio_runtime, + WorkerConfiguration, new_tokio_runtime, reporter::{GrpcReporterConfiguration, KafkaReporterConfiguration, ReporterConfiguration}, - start_worker, WorkerConfiguration, + start_worker, }; use std::{num::NonZeroUsize, path::PathBuf, thread::available_parallelism}; use tracing::log::LevelFilter; diff --git a/worker/src/reporter/reporter_grpc.rs b/worker/src/reporter/reporter_grpc.rs index fdbdd18..a32f150 100644 --- a/worker/src/reporter/reporter_grpc.rs +++ b/worker/src/reporter/reporter_grpc.rs @@ -14,7 +14,7 @@ // limitations under the License. use anyhow::anyhow; -use skywalking::reporter::{grpc::GrpcReporter, CollectItemConsume, CollectItemProduce}; +use skywalking::reporter::{CollectItemConsume, CollectItemProduce, grpc::GrpcReporter}; use std::time::Duration; use tokio::time::sleep; use tonic::transport::{Certificate, Channel, ClientTlsConfig, Endpoint, Identity}; diff --git a/worker/src/reporter/reporter_kafka.rs b/worker/src/reporter/reporter_kafka.rs index 204564c..5a4be2c 100644 --- a/worker/src/reporter/reporter_kafka.rs +++ b/worker/src/reporter/reporter_kafka.rs @@ -15,10 +15,10 @@ #![cfg(feature = "kafka-reporter")] -use anyhow::{bail, Context}; +use anyhow::{Context, bail}; use skywalking::reporter::{ - kafka::{KafkaReportBuilder, RDKafkaClientConfig}, CollectItemConsume, CollectItemProduce, + kafka::{KafkaReportBuilder, RDKafkaClientConfig}, }; use std::collections::HashMap;