diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index abdd8303d7..6479b83979 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -68,8 +68,10 @@ LICENSE* @DataDog/libdatadog license-tool.toml @DataDog/libdatadog local-linux.Dockerfile @DataDog/libdatadog NOTICE @DataDog/libdatadog +nightly-toolchain.toml @DataDog/libdatadog README.md @DataDog/libdatadog repository.datadog.yml @DataDog/apm-common-components-core +rust-toolchain.toml @DataDog/libdatadog rustfmt.toml @DataDog/libdatadog-core scripts/check_cargo_metadata.sh @DataDog/libdatadog-core scripts/check_crypto_providers.sh @DataDog/libdatadog-core diff --git a/.github/actions/Cargo.lock b/.github/actions/Cargo.lock index cd4743a5cc..667359a0dd 100644 --- a/.github/actions/Cargo.lock +++ b/.github/actions/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" @@ -22,9 +22,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -37,15 +37,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -78,9 +78,9 @@ checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arc-swap" -version = "1.8.2" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" +checksum = "6a3a1fd6f75306b68087b831f025c712524bcb19aad54e557b1129cfa0a2b207" dependencies = [ "rustversion", ] @@ -135,8 +135,8 @@ checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.3.0", - "futures-lite 2.6.1", + "fastrand", + "futures-lite", "pin-project-lite", "slab", ] @@ -152,7 +152,7 @@ dependencies = [ "async-io", "async-lock", "blocking", - "futures-lite 2.6.1", + "futures-lite", "once_cell", ] @@ -166,9 +166,9 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.6.1", + "futures-lite", "parking", - "polling 3.11.0", + "polling", "rustix", "slab", "windows-sys 0.61.2", @@ -208,15 +208,15 @@ dependencies = [ "blocking", "cfg-if", "event-listener 5.4.1", - "futures-lite 2.6.1", + "futures-lite", "rustix", ] [[package]] name = "async-signal" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" dependencies = [ "async-io", "async-lock", @@ -245,7 +245,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-io", - "futures-lite 2.6.1", + "futures-lite", "gloo-timers", "kv-log-macro", "log", @@ -326,15 +326,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "blocking" @@ -345,7 +339,7 @@ dependencies = [ "async-channel 2.5.0", "async-task", "futures-io", - "futures-lite 2.6.1", + "futures-lite", "piper", ] @@ -372,9 +366,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082" +checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" dependencies = [ "serde", "serde_core", @@ -396,15 +390,18 @@ dependencies = [ [[package]] name = "castaway" -version = "0.1.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] [[package]] name = "cc" -version = "1.2.56" +version = "1.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" dependencies = [ "find-msvc-tools", "shlex", @@ -445,9 +442,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.60" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -455,9 +452,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.60" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -467,9 +464,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", @@ -479,9 +476,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "clippy-annotation-reporter" @@ -505,9 +502,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "concurrent-queue" @@ -542,7 +539,7 @@ dependencies = [ "cargo_metadata", "ci-shared", "clap", - "env_logger 0.11.9", + "env_logger 0.11.10", "log", "serde", "serde_json", @@ -571,15 +568,15 @@ dependencies = [ "openssl-probe 0.1.6", "openssl-sys", "schannel", - "socket2 0.6.2", + "socket2 0.6.3", "windows-sys 0.59.0", ] [[package]] name = "curl-sys" -version = "0.4.85+curl-8.18.0" +version = "0.4.87+curl-8.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0efa6142b5ecc05f6d3eaa39e6af4888b9d3939273fb592c92b7088a8cf3fdb" +checksum = "61a460380f0ef783703dcbe909107f39c162adeac050d73c850055118b5b6327" dependencies = [ "cc", "libc", @@ -653,9 +650,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", "regex", @@ -676,9 +673,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ "anstream", "anstyle", @@ -732,18 +729,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "find-msvc-tools" @@ -780,9 +768,12 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" +checksum = "8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9" +dependencies = [ + "futures-core", +] [[package]] name = "futures" @@ -832,28 +823,13 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ - "fastrand 2.3.0", + "fastrand", "futures-core", "futures-io", "parking", @@ -915,9 +891,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", @@ -949,9 +925,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heck" @@ -1091,9 +1067,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -1104,7 +1080,6 @@ dependencies = [ "httparse", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -1112,17 +1087,16 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http 1.4.0", - "hyper 1.8.1", + "hyper 1.9.0", "hyper-util", "log", "rustls", "rustls-native-certs", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -1134,7 +1108,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.8.1", + "hyper 1.9.0", "hyper-util", "pin-project-lite", "tokio", @@ -1152,10 +1126,10 @@ dependencies = [ "futures-util", "http 1.4.0", "http-body 1.0.1", - "hyper 1.8.1", + "hyper 1.9.0", "libc", "pin-project-lite", - "socket2 0.6.2", + "socket2 0.6.3", "tokio", "tower-service", "tracing", @@ -1203,35 +1177,16 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "iri-string" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "is-terminal" version = "0.4.17" @@ -1251,23 +1206,22 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "isahc" -version = "1.7.2" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" +checksum = "82d93e1769c5c2b13a8e0d8ca9b6466c60bafade047326f25e3bcb97a947d875" dependencies = [ - "async-channel 1.9.0", + "async-channel 2.5.0", "castaway", "crossbeam-utils", "curl", "curl-sys", "encoding_rs", - "event-listener 2.5.3", - "futures-lite 1.13.0", + "event-listener 5.4.1", + "futures-lite", "http 0.2.12", "log", "mime", - "once_cell", - "polling 2.8.0", + "polling", "slab", "sluice", "tracing", @@ -1287,15 +1241,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819b44bc7c87d9117eb522f14d46e918add69ff12713c475946b0a29363ed1c2" +checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" dependencies = [ "jiff-static", "log", @@ -1306,9 +1260,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470252db18ecc35fd766c0891b1e3ec6cbbcd62507e85276c01bf75d8e94d4a1" +checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" dependencies = [ "proc-macro2", "quote", @@ -1317,10 +1271,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -1400,15 +1356,15 @@ checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libnghttp2-sys" -version = "0.1.12+1.68.0" +version = "0.1.13+1.68.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31d4c51112b381b39a072a6010bc5d3e5557996c5d0150abacd1d349b2636299" +checksum = "492e00167f1418c15648144f42bbfc63099806ecee9bf8d09a6353d6b4856b3c" dependencies = [ "cc", "libc", @@ -1416,18 +1372,18 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ "libc", ] [[package]] name = "libz-sys" -version = "1.1.24" +version = "1.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4735e9cbde5aac84a5ce588f6b23a90b9b0b528f6c5a8db8a4aff300463a0839" +checksum = "fc3a226e576f50782b3305c5ccf458698f92798987f551c6a02efe8276721e22" dependencies = [ "cc", "libc", @@ -1473,9 +1429,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi", @@ -1526,9 +1482,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-integer" @@ -1566,7 +1522,7 @@ dependencies = [ "http 1.4.0", "http-body 1.0.1", "http-body-util", - "hyper 1.8.1", + "hyper 1.9.0", "hyper-rustls", "hyper-timeout", "hyper-util", @@ -1590,9 +1546,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -1614,9 +1570,9 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" -version = "0.9.111" +version = "0.9.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" +checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" dependencies = [ "cc", "libc", @@ -1696,18 +1652,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", @@ -1733,31 +1689,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" dependencies = [ "atomic-waker", - "fastrand 2.3.0", + "fastrand", "futures-io", ] [[package]] name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "polling" -version = "2.8.0" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "polling" @@ -1781,9 +1721,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", ] @@ -1847,18 +1787,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "redox_syscall" @@ -1866,7 +1806,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags", ] [[package]] @@ -1929,7 +1869,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -1938,9 +1878,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ "log", "once_cell", @@ -1965,18 +1905,18 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "ring", "rustls-pki-types", @@ -2006,9 +1946,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] @@ -2034,7 +1974,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.11.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -2053,9 +1993,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" dependencies = [ "serde", "serde_core", @@ -2182,9 +2122,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "slab" @@ -2194,11 +2134,11 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "sluice" -version = "0.5.5" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" +checksum = "160b744a45e8261307bcfe03c98e2f8274502207d534c9a64b675c4db1b6bd58" dependencies = [ - "async-channel 1.9.0", + "async-channel 2.5.0", "futures-core", "futures-io", ] @@ -2242,12 +2182,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2293,12 +2233,12 @@ checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "tempfile" -version = "3.26.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ - "fastrand 2.3.0", - "getrandom 0.4.1", + "fastrand", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", @@ -2412,9 +2352,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -2427,24 +2367,24 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "libc", "mio", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.2", + "socket2 0.6.3", "tokio-macros", "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -2534,21 +2474,21 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ - "bitflags 2.11.0", + "bitflags", "bytes", "futures-util", "http 1.4.0", "http-body 1.0.1", - "iri-string", "pin-project-lite", "tower", "tower-layer", "tower-service", "tracing", + "url", ] [[package]] @@ -2707,11 +2647,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -2720,14 +2660,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" dependencies = [ "cfg-if", "once_cell", @@ -2738,23 +2678,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.64" +version = "0.4.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2762,9 +2698,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" dependencies = [ "bumpalo", "proc-macro2", @@ -2775,9 +2711,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" dependencies = [ "unicode-ident", ] @@ -2810,22 +2746,12 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags", "hashbrown 0.15.5", "indexmap", "semver", ] -[[package]] -name = "web-sys" -version = "0.3.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "web-time" version = "1.1.0" @@ -2927,22 +2853,13 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -2951,16 +2868,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", + "windows-targets", ] [[package]] @@ -2972,197 +2880,75 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "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", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" 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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] @@ -3176,6 +2962,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -3225,7 +3017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", + "bitflags", "indexmap", "log", "serde", diff --git a/.github/actions/ci-shared/Cargo.toml b/.github/actions/ci-shared/Cargo.toml index f7ec22b9fb..cc106141aa 100644 --- a/.github/actions/ci-shared/Cargo.toml +++ b/.github/actions/ci-shared/Cargo.toml @@ -5,7 +5,7 @@ name = "ci-shared" version = "0.1.0" edition = "2021" -rust-version = "1.84.1" +rust-version = "1.87.0" publish = false [dependencies] diff --git a/.github/actions/clippy-annotation-reporter/Cargo.toml b/.github/actions/clippy-annotation-reporter/Cargo.toml index bf83ce41fe..ba64b309a7 100644 --- a/.github/actions/clippy-annotation-reporter/Cargo.toml +++ b/.github/actions/clippy-annotation-reporter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clippy-annotation-reporter" -rust-version = "1.84.1" +rust-version = "1.87.0" edition = "2021" version = "0.1.0" description = "GitHub Action for reporting clippy annotation usage in PRs" diff --git a/.github/actions/clippy-annotation-reporter/action.yml b/.github/actions/clippy-annotation-reporter/action.yml index 6991d309fc..36d6266534 100644 --- a/.github/actions/clippy-annotation-reporter/action.yml +++ b/.github/actions/clippy-annotation-reporter/action.yml @@ -23,10 +23,8 @@ inputs: runs: using: 'composite' steps: - - name: Set up Rust - shell: bash - run: rustup set profile minimal && rustup install stable && rustup default stable - + # Rust is auto-installed by rustup from the workspace's rust-toolchain.toml + # on first cargo invocation; no explicit setup needed. - name: Fetch all branches shell: bash run: | diff --git a/.github/actions/crates-reporter/Cargo.toml b/.github/actions/crates-reporter/Cargo.toml index cf74f29140..2158b540ef 100644 --- a/.github/actions/crates-reporter/Cargo.toml +++ b/.github/actions/crates-reporter/Cargo.toml @@ -5,7 +5,7 @@ name = "crates-reporter" version = "0.1.0" edition = "2021" -rust-version = "1.84.1" +rust-version = "1.87.0" description = "GitHub Action for reporting modified crates and transitive dependencies" homepage = "https://github.com/DataDog/libdatadog/tree/main/.github/actions/crates-reporter" repository = "https://github.com/DataDog/libdatadog/tree/main/.github/actions/crates-reporter" diff --git a/.github/actions/crates-reporter/action.yml b/.github/actions/crates-reporter/action.yml index b3956b44f0..6c7ce645f5 100644 --- a/.github/actions/crates-reporter/action.yml +++ b/.github/actions/crates-reporter/action.yml @@ -27,11 +27,8 @@ outputs: runs: using: 'composite' steps: - - name: Set up Rust - if: ${{ github.event_name == 'pull_request' }} - shell: bash - run: rustup install stable && rustup default stable - + # Rust is auto-installed by rustup from the workspace's rust-toolchain.toml + # on first cargo invocation; no explicit setup needed. - name: Fetch all branches if: ${{ github.event_name == 'pull_request' }} shell: bash diff --git a/.github/actions/rust-toolchain.toml b/.github/actions/rust-toolchain.toml new file mode 100644 index 0000000000..a6788ea0c4 --- /dev/null +++ b/.github/actions/rust-toolchain.toml @@ -0,0 +1,13 @@ +# The helper crates under .github/actions/ are CI build tools, not shipping +# artifacts. They don't ship to consumers and aren't subject to the workspace +# MSRV pinned in the libdatadog repo root's rust-toolchain.toml. Build them +# on stable so transitive dependencies that have moved past the workspace +# MSRV (e.g. cargo-platform, time-family) can resolve normally. +# +# rustup respects the nearest rust-toolchain.toml walking upward from the +# working directory, so this file shadows the repo-root pin only for cargo +# invocations rooted inside .github/actions/. + +[toolchain] +channel = "stable" +profile = "minimal" diff --git a/.github/workflows/check-crypto-providers.yml b/.github/workflows/check-crypto-providers.yml index 2cb6bddb26..73b92ab5ac 100644 --- a/.github/workflows/check-crypto-providers.yml +++ b/.github/workflows/check-crypto-providers.yml @@ -6,7 +6,6 @@ on: - main - mq-working-branch-* env: - rust_version: "1.84.1" CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 jobs: @@ -16,8 +15,11 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - - name: Install ${{ env.rust_version }} toolchain - run: rustup set profile minimal && rustup install ${{ env.rust_version }} && rustup default ${{ env.rust_version }} + - name: Read Rust version from rust-toolchain.toml + id: rust-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' rust-toolchain.toml)" >> $GITHUB_OUTPUT + - name: Install ${{ steps.rust-version.outputs.version }} toolchain + run: rustup set profile minimal && rustup install ${{ steps.rust-version.outputs.version }} && rustup default ${{ steps.rust-version.outputs.version }} - name: Cache [rust] uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # 2.8.1 with: diff --git a/.github/workflows/clippy-annotation-reporter.yml b/.github/workflows/clippy-annotation-reporter.yml index ee34403b22..f7560306c8 100644 --- a/.github/workflows/clippy-annotation-reporter.yml +++ b/.github/workflows/clippy-annotation-reporter.yml @@ -27,8 +27,8 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: fetch-depth: 0 # Full history - - name: Install Rust - run: rustup set profile minimal && rustup install stable + # Rust is auto-installed from rust-toolchain.toml on first cargo invocation + # inside the composite action; no explicit setup needed here. - name: Run annotation reporter uses: ./.github/actions/clippy-annotation-reporter with: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 10bc2f2404..0de61c5965 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -30,8 +30,13 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: submodules: recursive + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT - name: Install Rust - run: rustup set profile minimal && rustup install nightly-2026-02-08 && rustup default nightly-2026-02-08 + run: | + rustup set profile minimal + rustup install ${{ steps.nightly-version.outputs.version }} - name: Install cargo-llvm-cov uses: taiki-e/install-action@2c41309d51ede152b6f2ee6bf3b71e6dc9a8b7df # 2.49.27 with: @@ -42,6 +47,10 @@ jobs: cache-targets: true # cache build artifacts cache-bin: true # cache the ~/.cargo/bin directory - name: Generate code coverage (including doc tests) + env: + # Override rust-toolchain.toml so cargo-llvm-cov runs on the dated + # nightly (doc-test coverage needs nightly) instead of the workspace MSRV. + RUSTUP_TOOLCHAIN: ${{ steps.nightly-version.outputs.version }} run: | cargo llvm-cov --all-features --workspace --no-report nextest --no-tests=pass cargo llvm-cov --all-features --workspace --no-report --doc diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index cca2d4202d..3cc6e1c268 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -50,12 +50,14 @@ jobs: CARGO_INCREMENTAL: 0 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT - name: Set up Rust run: | set -e rustup set profile minimal - rustup toolchain install nightly-2026-02-08 - rustup default nightly-2026-02-08 + rustup toolchain install ${{ steps.nightly-version.outputs.version }} - uses: taiki-e/install-action@2c41309d51ede152b6f2ee6bf3b71e6dc9a8b7df # 2.49.27 with: tool: cargo-bolero @@ -64,7 +66,10 @@ jobs: with: cache-targets: true # cache build artifacts cache-bin: true # cache the ~/.cargo/bin directory - - run: | + - env: + # Override rust-toolchain.toml so cargo-bolero runs on the dated nightly. + RUSTUP_TOOLCHAIN: ${{ steps.nightly-version.outputs.version }} + run: | set -e # cargo bolero list outputs {"package":"package-name","test":"test-name"} pushd ${{ matrix.directory }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3409667956..717b037b09 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,10 +15,18 @@ jobs: crates-count: ${{ steps.set-packages.outputs.crates-count }} fmt-packages: ${{ steps.set-packages.outputs.fmt-packages }} clippy-packages: ${{ steps.set-packages.outputs.clippy-packages }} + rust-version: ${{ steps.rust-version.outputs.version }} + nightly-version: ${{ steps.nightly-version.outputs.version }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: fetch-depth: 0 + - name: Read Rust version from rust-toolchain.toml + id: rust-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' rust-toolchain.toml)" >> $GITHUB_OUTPUT + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT - name: Get crate report id: changed-crates uses: ./.github/actions/crates-reporter @@ -74,8 +82,11 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: submodules: recursive - - name: Install nightly-2026-02-08 toolchain and rustfmt - run: rustup set profile minimal && rustup install nightly-2026-02-08 && rustup default nightly-2026-02-08 && rustup component add rustfmt + - name: Install ${{ needs.setup.outputs.nightly-version }} toolchain and rustfmt + run: | + rustup set profile minimal + rustup install ${{ needs.setup.outputs.nightly-version }} + rustup component add rustfmt --toolchain ${{ needs.setup.outputs.nightly-version }} - name: Cache [rust] uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # 2.8.1 with: @@ -84,6 +95,9 @@ jobs: - name: Run rustfmt env: FMT_PACKAGES: ${{ needs.setup.outputs.fmt-packages }} + # Override rust-toolchain.toml so rustfmt runs on nightly (required by + # the unstable_features in rustfmt.toml) instead of the workspace MSRV. + RUSTUP_TOOLCHAIN: ${{ needs.setup.outputs.nightly-version }} run: | if [[ -z "$FMT_PACKAGES" ]]; then cargo fmt --all -- --check @@ -99,7 +113,7 @@ jobs: strategy: fail-fast: false matrix: - rust_version: ["1.84.1", "stable", "nightly-2026-02-08"] + rust_version: ["msrv", "stable", "nightly"] platform: [windows-latest, ubuntu-latest] steps: - name: Checkout sources @@ -107,7 +121,19 @@ jobs: with: submodules: recursive - name: Install ${{ matrix.rust_version }} toolchain and clippy - run: rustup set profile minimal && rustup install ${{ matrix.rust_version }} && rustup default ${{ matrix.rust_version }} && rustup component add clippy + id: install-toolchain + shell: bash + run: | + VERSION="${{ matrix.rust_version }}" + if [ "$VERSION" = "msrv" ]; then + VERSION="${{ needs.setup.outputs.rust-version }}" + elif [ "$VERSION" = "nightly" ]; then + VERSION="${{ needs.setup.outputs.nightly-version }}" + fi + rustup set profile minimal + rustup install "$VERSION" + rustup component add clippy --toolchain "$VERSION" + echo "version=$VERSION" >> "$GITHUB_OUTPUT" - name: Cache [rust] uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # 2.8.1 with: @@ -117,17 +143,18 @@ jobs: shell: bash env: CLIPPY_PACKAGES: ${{ needs.setup.outputs.clippy-packages }} + # Override rust-toolchain.toml so each matrix entry actually runs on + # its chosen toolchain instead of falling back to the workspace MSRV. + RUSTUP_TOOLCHAIN: ${{ steps.install-toolchain.outputs.version }} run: | if [[ "${{ matrix.platform }}" == "windows-latest" ]]; then export AWS_LC_FIPS_SYS_NO_ASM=1 fi - EXTRA_CLIPPY_FLAG=$([ ${{ matrix.rust_version }} = 1.84.1 ] || echo -Aclippy::manual_is_multiple_of) if [[ -z "$CLIPPY_PACKAGES" ]]; then - # shellcheck disable=SC2086 - cargo clippy --workspace --all-targets --all-features -- -D warnings $EXTRA_CLIPPY_FLAG + cargo clippy --workspace --all-targets --all-features -- -D warnings else # shellcheck disable=SC2086 - cargo clippy $CLIPPY_PACKAGES --all-targets --all-features -- -D warnings $EXTRA_CLIPPY_FLAG + cargo clippy $CLIPPY_PACKAGES --all-targets --all-features -- -D warnings fi licensecheck: diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml index 25aa1cc7bb..2f6a163e65 100644 --- a/.github/workflows/miri.yml +++ b/.github/workflows/miri.yml @@ -59,12 +59,14 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: submodules: recursive + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT - name: Set up Rust run: | set -e rustup set profile minimal - rustup toolchain install nightly-2026-02-08 --component miri - rustup default nightly-2026-02-08 + rustup toolchain install ${{ steps.nightly-version.outputs.version }} --component miri - uses: taiki-e/install-action@2c41309d51ede152b6f2ee6bf3b71e6dc9a8b7df # 2.49.27 with: tool: nextest@0.9.96 @@ -73,6 +75,10 @@ jobs: with: cache-targets: true # cache build artifacts cache-bin: true # cache the ~/.cargo/bin directory - - run: MIRIFLAGS="-Zmiri-disable-isolation" cargo miri nextest run ${{ needs.setup.outputs.crates }} --partition count:${{ matrix.partition }}/5 --no-tests=pass + - env: + # Override rust-toolchain.toml so miri runs on the dated nightly + # (miri is nightly-only) instead of the workspace MSRV. + RUSTUP_TOOLCHAIN: ${{ steps.nightly-version.outputs.version }} + run: MIRIFLAGS="-Zmiri-disable-isolation" cargo miri nextest run ${{ needs.setup.outputs.crates }} --partition count:${{ matrix.partition }}/5 --no-tests=pass # We need to disable isolation because # "unsupported operation: `clock_gettime` with `REALTIME` clocks not available when isolation is enabled" diff --git a/.github/workflows/pr-metadata-docs-and-deps.yml b/.github/workflows/pr-metadata-docs-and-deps.yml index 712dc5a5dc..e4bb00ab8d 100644 --- a/.github/workflows/pr-metadata-docs-and-deps.yml +++ b/.github/workflows/pr-metadata-docs-and-deps.yml @@ -282,6 +282,8 @@ jobs: - uses: taiki-e/cache-cargo-install-action@7447f04c51f2ba27ca35e7f1e28fab848c5b3ba7 # 2.3.1 with: tool: cargo-deny + env: + RUSTUP_TOOLCHAIN: stable - name: Run cargo-deny on changed crates id: cargo-deny run: | diff --git a/.github/workflows/pr-title-semver-check.yml b/.github/workflows/pr-title-semver-check.yml index 9d8640e7fb..4bb8dce270 100644 --- a/.github/workflows/pr-title-semver-check.yml +++ b/.github/workflows/pr-title-semver-check.yml @@ -89,13 +89,16 @@ jobs: fetch-depth: 0 persist-credentials: false + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT - name: Install Rust ${{ env.RUST_VERSION }} run: | rustup set profile minimal rustup install ${{ env.RUST_VERSION }} && rustup default ${{ env.RUST_VERSION }} - rustup toolchain install nightly-2026-02-08 + rustup toolchain install ${{ steps.nightly-version.outputs.version }} # Link the dated nightly as 'nightly' for tools (like cargo-public-api) that expect it - ln -sf ~/.rustup/toolchains/nightly-2026-02-08-x86_64-unknown-linux-gnu ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu + ln -sf ~/.rustup/toolchains/${{ steps.nightly-version.outputs.version }}-x86_64-unknown-linux-gnu ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu - name: Cache [rust] uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # 2.8.1 @@ -110,9 +113,16 @@ jobs: uses: taiki-e/install-action@2c41309d51ede152b6f2ee6bf3b71e6dc9a8b7df # 2.49.27 with: tool: cargo-public-api@0.50.2, cargo-semver-checks@0.45.0 + env: + RUSTUP_TOOLCHAIN: ${{ env.RUST_VERSION }} - name: Run semver checks on changed crates id: semver + env: + # Override rust-toolchain.toml so cargo-semver-checks / cargo-public-api + # run on the explicit RUST_VERSION (1.92.0) the workflow installed, + # instead of the workspace MSRV from rust-toolchain.toml. + RUSTUP_TOOLCHAIN: ${{ env.RUST_VERSION }} run: | set -euo pipefail diff --git a/.github/workflows/release-proposal-dispatch.yml b/.github/workflows/release-proposal-dispatch.yml index 4cc3aa674a..123b293047 100644 --- a/.github/workflows/release-proposal-dispatch.yml +++ b/.github/workflows/release-proposal-dispatch.yml @@ -122,14 +122,17 @@ jobs: ref: ${{ env.MAIN_BRANCH }} fetch-depth: 0 fetch-tags: true + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT - uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1 with: cache-targets: true - uses: dtolnay/rust-toolchain@nightly with: - toolchain: nightly-2026-02-08 + toolchain: ${{ steps.nightly-version.outputs.version }} - name: Link nightly toolchain for cargo-public-api - run: ln -sf ~/.rustup/toolchains/nightly-2026-02-08-x86_64-unknown-linux-gnu ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu + run: ln -sf ~/.rustup/toolchains/${{ steps.nightly-version.outputs.version }}-x86_64-unknown-linux-gnu ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu - uses: dtolnay/rust-toolchain@stable with: toolchain: 1.92.0 diff --git a/.github/workflows/rustfmt-auto.yml b/.github/workflows/rustfmt-auto.yml index 9c20843a71..7baa569b44 100644 --- a/.github/workflows/rustfmt-auto.yml +++ b/.github/workflows/rustfmt-auto.yml @@ -25,9 +25,18 @@ jobs: with: scope: DataDog/libdatadog policy: self.write.rustfmt - - name: Install nightly-2026-02-08 toolchain and rustfmt - run: rustup install nightly-2026-02-08 && rustup default nightly-2026-02-08 && rustup component add rustfmt + - name: Read nightly version from nightly-toolchain.toml + id: nightly-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' nightly-toolchain.toml)" >> $GITHUB_OUTPUT + - name: Install ${{ steps.nightly-version.outputs.version }} toolchain and rustfmt + run: | + rustup install ${{ steps.nightly-version.outputs.version }} + rustup component add rustfmt --toolchain ${{ steps.nightly-version.outputs.version }} - name: Run rustfmt and commit changes uses: mbrobbel/rustfmt-check@e7ac5685995bd39fb14f6c83fa6f10627e92e680 # master + env: + # Override rust-toolchain.toml so rustfmt runs on nightly (required by + # the unstable_features in rustfmt.toml) instead of the workspace MSRV. + RUSTUP_TOOLCHAIN: ${{ steps.nightly-version.outputs.version }} with: token: ${{ steps.octo-sts.outputs.token }} diff --git a/.github/workflows/test-ffi.yml b/.github/workflows/test-ffi.yml index a09ee79ccd..994472b9ec 100644 --- a/.github/workflows/test-ffi.yml +++ b/.github/workflows/test-ffi.yml @@ -9,7 +9,6 @@ on: - cron: '0 6 * * *' env: CARGO_TERM_COLOR: always - RUST_VERSION: 1.84.1 jobs: setup: @@ -55,7 +54,7 @@ jobs: } >> $GITHUB_OUTPUT ffi: - name: "FFI #${{ matrix.platform }} ${{ matrix.rust_version }}" + name: "FFI #${{ matrix.platform }}" needs: setup if: needs.setup.outputs.packages-count != '0' runs-on: ${{ matrix.platform }} @@ -65,10 +64,7 @@ jobs: strategy: matrix: platform: [windows-latest, ubuntu-latest, macos-15] - rust_version: [""] include: - - platform: "ubuntu-latest" - rust_version: "${RUST_VERSION}" - platform: "ubuntu-latest" flags: "-C relocation-model=pic" - platform: "macos-15" @@ -99,13 +95,10 @@ jobs: large-packages: false docker-images: false swap-storage: true - - name: Install Rust ${{ matrix.rust_version }} - if: matrix.rust_version != '' - run: rustup install ${{ matrix.rust_version }} && rustup default ${{ matrix.rust_version }} - - id: rust-version - # On Windows run happens in a PowerShell, so start bash explicitly - run: bash -c 'echo "version=$(rustc --version)" >> $GITHUB_OUTPUT' + # rustup auto-installs the version pinned in rust-toolchain.toml on first invocation. + # On Windows run happens in a PowerShell, so start bash explicitly. + run: bash -c 'echo "version=$(rustc --version | cut -d" " -f2)" >> $GITHUB_OUTPUT' - name: Install Go (macOS) if: runner.os == 'macOS' @@ -129,8 +122,7 @@ jobs: cargo run --bin release --release -- --out $LIBDD_OUTPUT_FOLDER - name: 'Publish libdatadog' uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # 4.6.1 - # Only upload the artifacts built with the default Rust version - if: (success() || failure()) && matrix.rust_version == '' + if: success() || failure() with: if-no-files-found: error name: libdatadog.${{ matrix.platform }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 013494e54f..5c2252b6e6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,6 @@ on: - cron: '0 6 * * *' env: CARGO_TERM_COLOR: always - RUST_VERSION: 1.84.1 jobs: setup: @@ -69,7 +68,7 @@ jobs: } >> $GITHUB_OUTPUT test: - name: "cargo test #${{ matrix.platform }} ${{ matrix.rust_version }}" + name: "cargo test #${{ matrix.platform }}" needs: setup if: needs.setup.outputs.packages-count != '0' # Ubuntu jobs run on the larger APM runner pool — the default GitHub-hosted @@ -87,10 +86,6 @@ jobs: strategy: matrix: platform: [windows-latest, ubuntu-latest, macos-15] - rust_version: [""] - include: - - platform: "ubuntu-latest" - rust_version: "${RUST_VERSION}" fail-fast: false steps: - name: Free Disk Space (Ubuntu only) @@ -108,12 +103,10 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: submodules: recursive - - name: Install Rust ${{ matrix.rust_version }} - if: matrix.rust_version != '' - run: rustup set profile minimal && rustup install ${{ matrix.rust_version }} && rustup default ${{ matrix.rust_version }} - id: rust-version - # On Windows run happens in a PowerShell, so start bash explicitly - run: bash -c 'echo "version=$(rustc --version)" >> $GITHUB_OUTPUT' + # rustup auto-installs the version pinned in rust-toolchain.toml on first invocation. + # On Windows run happens in a PowerShell, so start bash explicitly. + run: bash -c 'echo "version=$(rustc --version | cut -d" " -f2)" >> $GITHUB_OUTPUT' - name: Install cargo nextest uses: taiki-e/install-action@2c41309d51ede152b6f2ee6bf3b71e6dc9a8b7df # 2.49.27 with: @@ -215,7 +208,7 @@ jobs: uses: mikepenz/action-junit-report@db71d41eb79864e25ab0337e395c352e84523afe # 4.3.1 with: report_paths: "target/nextest/ci/junit.xml" - check_name: "[${{ matrix.platform }}:${{ matrix.rust_version }}] test report" + check_name: "[${{ matrix.platform }}:${{ steps.rust-version.outputs.version }}] test report" include_passed: true - name: Upload test results to Datadog if: success() || failure() @@ -259,7 +252,7 @@ jobs: --service libdatadog \ --env ci \ --logs \ - --tags rustc:${{ matrix.rust_version }},arch:${{ runner.arch }},os:${{ runner.os }},platform:${{ matrix.platform }} \ + --tags rustc:${{ steps.rust-version.outputs.version }},arch:${{ runner.arch }},os:${{ runner.os }},platform:${{ matrix.platform }} \ target/nextest/ci/junit.xml env: DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }} diff --git a/.github/workflows/verify-proto-files.yml b/.github/workflows/verify-proto-files.yml index e05fd7ef7e..2dddd0f53d 100644 --- a/.github/workflows/verify-proto-files.yml +++ b/.github/workflows/verify-proto-files.yml @@ -4,7 +4,6 @@ on: types: [ opened, synchronize, reopened ] env: DATADOG_AGENT_TAG: "bdcdd8cf1ba4090a29b96d5669cfab5dd81814b1" - rust_version: "1.84.1" CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 jobs: @@ -45,8 +44,11 @@ jobs: working-directory: libdd-trace-protobuf/src/pb run: | ../../../.github/workflows/diff-proto-files.sh --file idx/span.proto --tag ${{ env.DATADOG_AGENT_TAG }} - - name: Install ${{ env.rust_version }} toolchain - run: rustup set profile minimal && rustup install ${{ env.rust_version }} && rustup default ${{ env.rust_version }} + - name: Read Rust version from rust-toolchain.toml + id: rust-version + run: echo "version=$(grep -Po '^channel = "\K[^"]+' rust-toolchain.toml)" >> $GITHUB_OUTPUT + - name: Install ${{ steps.rust-version.outputs.version }} toolchain + run: rustup set profile minimal && rustup install ${{ steps.rust-version.outputs.version }} && rustup default ${{ steps.rust-version.outputs.version }} - name: Cache [rust] uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # 2.8.1 with: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 255c62d7c6..f260c62ae9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ variables: # These are gitlab variables so that it's easier to do a manual deploy # If these are set witih value and description, then it gives you UI elements DOWNSTREAM_BRANCH: - value: "main" + value: "julio/bump-msrv" description: "downstream jobs are triggered on this branch" include: diff --git a/.gitlab/fuzz.yml b/.gitlab/fuzz.yml index 4c51a8eca4..1a52a4ee21 100644 --- a/.gitlab/fuzz.yml +++ b/.gitlab/fuzz.yml @@ -22,7 +22,8 @@ fuzz: timeout: 1h script: - VAULT_VERSION=1.15.4 && curl -fsSL "https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip" -o vault.zip && unzip vault.zip && mv vault /usr/local/bin/vault && rm vault.zip && chmod +x /usr/local/bin/vault - - rustup default nightly-2026-02-08 + - NIGHTLY_VERSION=$(awk -F'"' '/^channel[[:space:]]*=/ {print $2}' nightly-toolchain.toml) + - rustup default "$NIGHTLY_VERSION" - cargo install cargo-fuzz - pip3 install requests toml - python3 fuzz/fuzz_infra.py diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b3295dc26d..8d8c8a9696 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,8 @@ repos: - id: cargo-fmt name: cargo fmt language: system - # Pinned to match CI (.github/workflows/lint.yml). Keep this in sync. + # Nightly version must match `nightly-toolchain.toml` at the repo root, + # which is the source of truth that CI reads. Keep these two in sync. entry: cargo +nightly-2026-02-08 fmt --all -- types: [rust] pass_filenames: false diff --git a/Cargo.toml b/Cargo.toml index cac1675243..61ef82959c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,7 +72,7 @@ resolver = "2" # The RHEL restrictions are for the dd-trace-php repository. Someone in the # community, Remi Collet, packages the extension for these systems. [workspace.package] -rust-version = "1.84.1" +rust-version = "1.87.0" edition = "2021" version = "34.0.0" license = "Apache-2.0" diff --git a/README.md b/README.md index 514976cc9c..a82e33abe0 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ cargo run --bin release -- --out output-folder #### Build dependencies -- Rust 1.84.1 or newer with cargo. See the Cargo.toml for information about bumping this version. +- Rust 1.87.0 or newer with cargo. The exact version is pinned in `rust-toolchain.toml` at the workspace root and rustup installs it automatically. See the comment near `rust-version` in `Cargo.toml` for the constraints to check when bumping this version. - `cbindgen` 0.29 - `cmake` and `protoc` diff --git a/datadog-ipc/src/shm_stats.rs b/datadog-ipc/src/shm_stats.rs index 88d892b518..44941ec667 100644 --- a/datadog-ipc/src/shm_stats.rs +++ b/datadog-ipc/src/shm_stats.rs @@ -288,7 +288,7 @@ unsafe fn alloc_str(pool: *mut u8, cursor: &AtomicU32, pool_size: u32, s: &str) return StringRef { offset: old, len }; } spins += 1; - if spins % YIELD_AFTER_SPINS == 0 { + if spins.is_multiple_of(YIELD_AFTER_SPINS) { thread::yield_now(); } else { hint::spin_loop(); @@ -509,7 +509,7 @@ impl ShmSpanConcentrator { break; } spins += 1; - if spins % YIELD_AFTER_SPINS == 0 { + if spins.is_multiple_of(YIELD_AFTER_SPINS) { thread::yield_now(); } else { hint::spin_loop(); @@ -517,7 +517,7 @@ impl ShmSpanConcentrator { } SLOT_INIT => { spins += 1; - if spins % YIELD_AFTER_SPINS == 0 { + if spins.is_multiple_of(YIELD_AFTER_SPINS) { thread::yield_now(); } else { hint::spin_loop(); @@ -687,7 +687,7 @@ impl ShmSpanConcentrator { let mut spins = 0u32; while bh.in_flight.load(Relaxed) != 0 && spins < MAX_FLUSH_WAIT_ITERS { spins += 1; - if spins % YIELD_AFTER_SPINS == 0 { + if spins.is_multiple_of(YIELD_AFTER_SPINS) { thread::yield_now(); } else { hint::spin_loop(); diff --git a/libdd-alloc/src/utils.rs b/libdd-alloc/src/utils.rs index 7d594aa502..4df7baeaa9 100644 --- a/libdd-alloc/src/utils.rs +++ b/libdd-alloc/src/utils.rs @@ -7,7 +7,7 @@ /// would be overkill. #[cfg(test)] pub(crate) fn is_aligned_to(p: *const T, align: usize) -> bool { - (p as *const u8 as usize) % align == 0 + (p as *const u8 as usize).is_multiple_of(align) } #[cfg(test)] diff --git a/libdd-data-pipeline/examples/send-traces-with-stats.rs b/libdd-data-pipeline/examples/send-traces-with-stats.rs index 460018c587..e1a618d851 100644 --- a/libdd-data-pipeline/examples/send-traces-with-stats.rs +++ b/libdd-data-pipeline/examples/send-traces-with-stats.rs @@ -27,7 +27,7 @@ fn get_span(now: i64, trace_id: u64, span_id: u64) -> pb::Span { service: "data-pipeline-test".to_string(), name: format!("test-name-{}", span_id % 2), resource: format!("test-resource-{}", (span_id + trace_id) % 3), - error: if trace_id % 10 == 0 { 1 } else { 0 }, + error: if trace_id.is_multiple_of(10) { 1 } else { 0 }, metrics: HashMap::from([ ("_sampling_priority_v1".to_string(), 1.0), ("_dd.measured".to_string(), 1.0), diff --git a/libdd-profiling/src/internal/profile/interning_api/mod.rs b/libdd-profiling/src/internal/profile/interning_api/mod.rs index 29527b1f92..6774891b00 100644 --- a/libdd-profiling/src/internal/profile/interning_api/mod.rs +++ b/libdd-profiling/src/internal/profile/interning_api/mod.rs @@ -234,6 +234,6 @@ impl Profile { pub fn samples_are_drained(&mut self) -> anyhow::Result { let current = self.active_samples.load(SeqCst); - Ok(current % Self::FLAG == 0) + Ok(current.is_multiple_of(Self::FLAG)) } } diff --git a/libdd-trace-obfuscation/src/sql.rs b/libdd-trace-obfuscation/src/sql.rs index df5451973e..1678b9cc74 100644 --- a/libdd-trace-obfuscation/src/sql.rs +++ b/libdd-trace-obfuscation/src/sql.rs @@ -274,7 +274,7 @@ impl<'a> Tokenizer<'a> { ) } - fn last_char(&self) -> Option { + const fn last_char(&self) -> Option { self.result.as_bytes().last().copied() } diff --git a/libdd-trace-stats/benches/span_concentrator_bench.rs b/libdd-trace-stats/benches/span_concentrator_bench.rs index e4c7df43a2..858e2435ff 100644 --- a/libdd-trace-stats/benches/span_concentrator_bench.rs +++ b/libdd-trace-stats/benches/span_concentrator_bench.rs @@ -20,7 +20,7 @@ fn get_span(now: SystemTime, trace_id: u64, span_id: u64) -> SpanBytes { metrics.insert("_dd.top_level".into(), 1.0); } let mut meta = HashMap::from([("db_name".into(), "postgres".into())]); - if span_id % 3 == 0 { + if span_id.is_multiple_of(3) { meta.insert("bucket_s3".into(), "aws_bucket".into()); } SpanBytes { diff --git a/nightly-toolchain.toml b/nightly-toolchain.toml new file mode 100644 index 0000000000..efd5580d4f --- /dev/null +++ b/nightly-toolchain.toml @@ -0,0 +1,10 @@ +# Source of truth for the nightly Rust toolchain used by CI jobs that genuinely +# require a nightly compiler (rustfmt unstable_features, cargo-miri, cargo-bolero, +# cargo-llvm-cov doc tests, cargo-public-api). NOT read by rustup — workflows +# parse `channel` from this file via the same awk pattern as `rust-toolchain.toml` +# and pass the value through `RUSTUP_TOOLCHAIN` or as an explicit toolchain arg. +# +# Format mirrors `rust-toolchain.toml` so a single parser handles both files. + +[toolchain] +channel = "nightly-2026-02-08" diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000000..f2004ae052 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "1.87.0" +components = ["rustfmt", "clippy"] +profile = "minimal"