From c7c67772fcbd009c1caf95ef6c69fa7b6c1ccb80 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Tue, 12 May 2026 11:24:28 +0200 Subject: [PATCH 1/2] Upgrade to hyper 1 and reqwest 0.13 --- Cargo.lock | 524 +++++++++++----------- Cargo.toml | 2 +- site/Cargo.toml | 8 +- site/src/main.rs | 14 +- site/src/request_handlers/self_profile.rs | 11 +- site/src/server.rs | 157 ++++--- 6 files changed, 373 insertions(+), 343 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f5126cf590..0f104c37a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -195,10 +195,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] -name = "base64" -version = "0.21.7" +name = "aws-lc-rs" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] [[package]] name = "base64" @@ -447,6 +463,15 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "collector" version = "0.1.0" @@ -474,7 +499,7 @@ dependencies = [ "ratatui", "rayon", "regex", - "reqwest 0.11.27", + "reqwest 0.13.4", "rustc-demangle", "semver", "serde", @@ -498,6 +523,16 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "compact_str" version = "0.9.0" @@ -743,7 +778,7 @@ dependencies = [ "log", "native-tls", "postgres-native-tls", - "reqwest 0.11.27", + "reqwest 0.13.4", "rusqlite", "serde", "tokio", @@ -891,6 +926,12 @@ dependencies = [ "litrs", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "either" version = "1.8.1" @@ -1085,6 +1126,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "futures" version = "0.3.31" @@ -1235,25 +1282,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "h2" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.13" @@ -1265,7 +1293,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.4.0", + "http", "indexmap", "slab", "tokio", @@ -1329,14 +1357,14 @@ dependencies = [ [[package]] name = "headers" -version = "0.3.9" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64 0.21.7", + "base64", "bytes", "headers-core", - "http 0.2.12", + "http", "httpdate", "mime", "sha1", @@ -1344,11 +1372,11 @@ dependencies = [ [[package]] name = "headers-core" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 0.2.12", + "http", ] [[package]] @@ -1384,17 +1412,6 @@ dependencies = [ "digest", ] -[[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 = "1.4.0" @@ -1405,17 +1422,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -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" @@ -1423,7 +1429,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.4.0", + "http", ] [[package]] @@ -1434,8 +1440,8 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.4.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -1466,30 +1472,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.10", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.8.1" @@ -1500,10 +1482,11 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2 0.4.13", - "http 1.4.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", "pin-utils", @@ -1518,8 +1501,8 @@ version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ - "http 1.4.0", - "hyper 1.8.1", + "http", + "hyper", "hyper-util", "rustls", "rustls-native-certs", @@ -1528,40 +1511,29 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.32", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "hyper-util" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-util", - "http 1.4.0", - "http-body 1.0.1", - "hyper 1.8.1", + "http", + "http-body", + "hyper", "ipnet", "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -1888,6 +1860,55 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror 2.0.17", + "walkdir", + "windows-link", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.104", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.104", +] + [[package]] name = "jobserver" version = "0.1.33" @@ -2265,15 +2286,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2858065e55c148d294a9f3aae3b0fa9458edadb41a108397094566f4e3c0dfb" dependencies = [ "async-trait", - "base64 0.22.1", + "base64", "bytes", "chrono", "form_urlencoded", "futures", - "http 1.4.0", + "http", "http-body-util", "humantime", - "hyper 1.8.1", + "hyper", "itertools 0.14.0", "md-5", "parking_lot", @@ -2617,7 +2638,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ee9dd5fe15055d2b6806f4736aa0c9637217074e224bbec46d4041b91bb9491" dependencies = [ - "base64 0.22.1", + "base64", "byteorder", "bytes", "fallible-iterator", @@ -2739,7 +2760,7 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.2", "rustls", - "socket2 0.6.3", + "socket2", "thiserror 2.0.17", "tokio", "tracing", @@ -2752,6 +2773,7 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ + "aws-lc-rs", "bytes", "getrandom 0.3.2", "lru-slab", @@ -2776,7 +2798,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.3", + "socket2", "tracing", "windows-sys 0.52.0", ] @@ -2996,83 +3018,85 @@ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64 0.21.7", + "base64", "bytes", - "encoding_rs", "futures-core", "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-tls", - "ipnet", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", "js-sys", "log", - "mime", - "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile", + "quinn", + "rustls", + "rustls-native-certs", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", + "sync_wrapper", "tokio", - "tokio-native-tls", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", - "winreg", ] [[package]] name = "reqwest" -version = "0.12.28" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ - "base64 0.22.1", + "base64", "bytes", + "encoding_rs", + "futures-channel", "futures-core", "futures-util", - "h2 0.4.13", - "http 1.4.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.8.1", + "hyper", "hyper-rustls", "hyper-util", "js-sys", "log", + "mime", "percent-encoding", "pin-project-lite", "quinn", "rustls", - "rustls-native-certs", "rustls-pki-types", + "rustls-platform-verifier", "serde", "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tokio-rustls", - "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", ] @@ -3226,6 +3250,7 @@ version = "0.23.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ + "aws-lc-rs", "once_cell", "ring", "rustls-pki-types", @@ -3246,15 +3271,6 @@ dependencies = [ "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pki-types" version = "1.14.0" @@ -3265,12 +3281,40 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -3483,6 +3527,22 @@ dependencies = [ "libc", ] +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "similar" version = "2.2.1" @@ -3519,9 +3579,11 @@ dependencies = [ "headers", "hex", "hmac", - "http 0.2.12", + "http", + "http-body-util", "humansize", - "hyper 0.14.32", + "hyper", + "hyper-util", "inferno", "insta", "itertools 0.10.5", @@ -3533,7 +3595,7 @@ dependencies = [ "parking_lot", "prometheus", "regex", - "reqwest 0.11.27", + "reqwest 0.13.4", "rmp-serde", "rust-embed", "rust_team_data", @@ -3571,16 +3633,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.3" @@ -3690,12 +3742,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -3718,20 +3764,20 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.10.0", "core-foundation 0.9.3", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -3840,7 +3886,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" dependencies = [ "anyhow", - "base64 0.22.1", + "base64", "bitflags 2.10.0", "fancy-regex", "filedescriptor", @@ -4009,7 +4055,7 @@ dependencies = [ "mio", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -4055,7 +4101,7 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand 0.9.2", - "socket2 0.6.3", + "socket2", "tokio", "tokio-util", "whoami", @@ -4127,7 +4173,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -4142,8 +4188,8 @@ dependencies = [ "bitflags 2.10.0", "bytes", "futures-util", - "http 1.4.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", "tower", "tower-layer", @@ -4519,6 +4565,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "wezterm-bidi" version = "0.2.3" @@ -4640,12 +4695,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-targets 0.48.5", + "windows-link", ] [[package]] @@ -4654,7 +4729,7 @@ 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]] @@ -4666,67 +4741,34 @@ 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_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "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", + "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_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_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" @@ -4739,48 +4781,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[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_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_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_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" @@ -4796,16 +4814,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "wit-bindgen-rt" version = "0.39.0" diff --git a/Cargo.toml b/Cargo.toml index 320a5913dc..fd008538e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ clap = "4" env_logger = "0.11" hashbrown = "0.17" log = "0.4" -reqwest = "0.11" +reqwest = "0.13" serde = "1" serde_json = "1" tokio = "1.36" diff --git a/site/Cargo.toml b/site/Cargo.toml index 3361343675..c41f69907b 100644 --- a/site/Cargo.toml +++ b/site/Cargo.toml @@ -20,9 +20,11 @@ serde_json = { workspace = true } tokio = { workspace = true, features = ["macros", "time"] } futures = "0.3" -hyper = { version = "0.14", features = ["server", "stream"] } -headers = "0.3" -http = "0.2" +hyper = { version = "1", features = ["server"] } +hyper-util = { version = "0.1", features = ["tokio", "server-auto"] } +headers = "0.4" +http = "1" +http-body-util = "0.1" rmp-serde = "1.1" brotli = "3.3.3" semver = "1.0" diff --git a/site/src/main.rs b/site/src/main.rs index 1709a49f02..e332f2a304 100644 --- a/site/src/main.rs +++ b/site/src/main.rs @@ -86,10 +86,16 @@ async fn main() { futures::pin_mut!(fut); loop { futures::select! { - _s = server => { - eprintln!("Server completed unexpectedly."); - return; - } + result = server => match result { + Ok(()) => { + eprintln!("Server finished unexpectedly."); + return; + } + Err(e) => { + eprintln!("Server failed: {e:?}"); + return; + } + }, l = fut => { if let Err(e) = l { eprintln!("Loading failed, exiting."); diff --git a/site/src/request_handlers/self_profile.rs b/site/src/request_handlers/self_profile.rs index 09ba2ad141..6e33492bda 100644 --- a/site/src/request_handlers/self_profile.rs +++ b/site/src/request_handlers/self_profile.rs @@ -10,7 +10,8 @@ use database::{metric::Metric, CommitType}; use database::{selector, CodegenBackend, Target}; use database::{ArtifactId, Profile}; use headers::{ContentType, Header}; -use hyper::{Body, StatusCode}; +use hyper::body::Bytes; +use hyper::StatusCode; use std::collections::HashSet; use std::sync::Arc; use std::time::Instant; @@ -19,7 +20,7 @@ pub async fn handle_self_profile_processed_download( body: self_profile_processed::Request, ctxt: &SiteCtxt, allow_compression: bool, -) -> http::Response { +) -> http::Response { log::info!("handle_self_profile_processed_download({:?})", body); let mut params = body.params.clone(); let diff_against = params.remove("base_commit"); @@ -180,7 +181,7 @@ pub async fn handle_self_profile_processed_download( }), ) } else { - builder.body(hyper::Body::from(output.data)).unwrap() + builder.body(Bytes::from(output.data)).unwrap() } } @@ -358,7 +359,7 @@ fn get_self_profile_delta( pub async fn handle_self_profile_raw_download( body: self_profile_raw::Request, ctxt: &SiteCtxt, -) -> http::Response { +) -> http::Response { log::info!("handle_self_profile_raw_download({:?})", body); let id = match get_self_profile_id( @@ -395,7 +396,7 @@ pub async fn handle_self_profile_raw_download( } }; - let mut server_resp = http::Response::new(Body::from(bytes)); + let mut server_resp = http::Response::new(Bytes::from(bytes)); let mut header = vec![]; ContentType::octet_stream().encode(&mut header); server_resp diff --git a/site/src/server.rs b/site/src/server.rs index e54e0b69b3..0a1a8df7e7 100644 --- a/site/src/server.rs +++ b/site/src/server.rs @@ -9,10 +9,12 @@ use std::str::FromStr; use std::sync::{Arc, LazyLock}; use std::{fmt, str}; -use futures::{future::FutureExt, stream::StreamExt}; use headers::{CacheControl, ContentType, ETag, HeaderMapExt, IfNoneMatch}; use http::header::CACHE_CONTROL; +use http_body_util::{BodyExt, Full, Limited}; +use hyper::body::{Bytes, Incoming}; use hyper::StatusCode; +use hyper_util::rt::TokioIo; use log::{error, info}; use parking_lot::RwLock; use serde::de::DeserializeOwned; @@ -29,15 +31,15 @@ use crate::resources::{Payload, ResourceResolver}; use crate::job_queue::build_queue; -pub type Request = http::Request; -pub type Response = http::Response; +pub type Request = http::Request; +pub type Response = http::Response; macro_rules! check_http_method { ($lhs: expr, $rhs: expr) => { if $lhs != $rhs { return Ok(http::Response::builder() .status(StatusCode::METHOD_NOT_ALLOWED) - .body(hyper::Body::empty()) + .body(Bytes::default()) .unwrap()); } }; @@ -64,7 +66,7 @@ pub fn json_error_response(status: StatusCode, message: impl Into) -> Re let payload = ServerJsonError { error: message.into(), }; - let body = hyper::Body::from(serde_json::to_vec(&payload).unwrap()); + let body = Bytes::from(serde_json::to_vec(&payload).unwrap()); http::Response::builder() .status(status) .header_typed(ContentType::json()) @@ -86,7 +88,7 @@ impl Server { let result = handler(ctxt); Ok(http::Response::builder() .header_typed(ContentType::json()) - .body(hyper::Body::from(serde_json::to_string(&result).unwrap())) + .body(Bytes::from(serde_json::to_string(&result).unwrap())) .unwrap()) } @@ -186,13 +188,13 @@ impl std::error::Error for ServerError {} async fn serve_req(server: Server, req: Request) -> Result { // Don't attempt to get lock if we're updating if server.ctxt.read().is_none() { - return Ok(Response::new(hyper::Body::from("no data yet, please wait"))); + return Ok(Response::new(Bytes::from("no data yet, please wait"))); } if req.method() == http::Method::OPTIONS { return Ok(http::Response::builder() .status(StatusCode::NO_CONTENT) - .body(hyper::Body::empty()) + .body(Bytes::default()) .unwrap()); } let path = req.uri().path().to_owned(); @@ -247,13 +249,13 @@ async fn serve_req(server: Server, req: Request) -> Result Ok(http::Response::builder() .header_typed(ContentType::json()) - .body(hyper::Body::from(serde_json::to_string(&result).unwrap())) + .body(Bytes::from(serde_json::to_string(&result).unwrap())) .unwrap()), Err(err) => Ok(http::Response::builder() .status(StatusCode::INTERNAL_SERVER_ERROR) .header_typed(ContentType::text_utf8()) .header_typed(CacheControl::new().with_no_cache().with_no_store()) - .body(hyper::Body::from(format!("{err:?}"))) + .body(Bytes::from(format!("{err:?}"))) .unwrap()), }; } @@ -319,21 +321,23 @@ async fn serve_req(server: Server, req: Request) -> Result = server.ctxt.read().as_ref().unwrap().clone(); - let mut body = Vec::new(); - while let Some(chunk) = body_stream.next().await { - let chunk = chunk.map_err(|e| ServerError(format!("failed to read chunk: {e:?}")))?; - body.extend_from_slice(&chunk); - // More than 10 MB of data - if body.len() > 1024 * 1024 * 10 { + let body = match Limited::new(body, 1024 * 1024 * 10).collect().await { + Ok(body) => body.to_bytes(), + Err(err) + if err + .downcast_ref::() + .is_some() => + { return Ok(http::Response::builder() .status(StatusCode::PAYLOAD_TOO_LARGE) - .body(hyper::Body::empty()) - .unwrap()); + .body(Bytes::default()) + .unwrap()) } - } + Err(err) => return Err(ServerError(format!("failed to read body: {err}"))), + }; match path { "/perf/get" => Ok(to_response( @@ -344,7 +348,7 @@ async fn serve_req(server: Server, req: Request) -> Result Result { return Ok(http::Response::builder() .status(StatusCode::OK) - .body(hyper::Body::from("missing event header")) + .body(Bytes::from("missing event header")) .unwrap()) } }; @@ -369,7 +373,7 @@ async fn serve_req(server: Server, req: Request) -> Result Ok(http::Response::builder() .status(StatusCode::OK) - .body(hyper::Body::from(format!("unknown event: {event}"))) + .body(Bytes::from(format!("unknown event: {event}"))) .unwrap()), } } @@ -388,20 +392,20 @@ async fn serve_req(server: Server, req: Request) -> Result http::Response::builder() .status(StatusCode::INTERNAL_SERVER_ERROR) .header_typed(ContentType::text_utf8()) .header_typed(CacheControl::new().with_no_cache().with_no_store()) - .body(hyper::Body::from(err)) + .body(Bytes::from(err)) .unwrap(), }, ), _ => Ok(http::Response::builder() .header_typed(ContentType::html()) .status(StatusCode::NOT_FOUND) - .body(hyper::Body::empty()) + .body(Bytes::default()) .unwrap()), } } @@ -422,7 +426,7 @@ where Err(http::Response::builder() .header_typed(ContentType::text_utf8()) .status(StatusCode::BAD_REQUEST) - .body(hyper::Body::from(format!( + .body(Bytes::from(format!( "Failed to deserialize request: {err:?}" ))) .unwrap()) @@ -449,7 +453,7 @@ where Err(err) => Err(http::Response::builder() .header_typed(ContentType::text_utf8()) .status(StatusCode::BAD_REQUEST) - .body(hyper::Body::from(format!( + .body(Bytes::from(format!( "Failed to deserialize request {uri}: {err:?}", ))) .unwrap()), @@ -461,11 +465,7 @@ static TEMPLATES: LazyLock = LazyLock::new(|| ResourceResolver::new().expect("Cannot load resources")); /// Handle the case where the path is to a static file -async fn handle_fs_path( - req: &Request, - path: &str, - use_compression: bool, -) -> Option> { +async fn handle_fs_path(req: &Request, path: &str, use_compression: bool) -> Option { if path.contains("./") | path.contains("../") { return Some(not_found()); } @@ -525,21 +525,21 @@ async fn handle_fs_path( } } - Some(response.body(hyper::Body::from(source)).unwrap()) + Some(response.body(Bytes::from(source)).unwrap()) } -fn not_modified(response: http::response::Builder) -> http::Response { +fn not_modified(response: http::response::Builder) -> Response { response .status(StatusCode::NOT_MODIFIED) - .body(hyper::Body::empty()) + .body(Bytes::default()) .unwrap() } -fn not_found() -> http::Response { +fn not_found() -> Response { http::Response::builder() .header_typed(ContentType::html()) .status(StatusCode::NOT_FOUND) - .body(hyper::Body::empty()) + .body(Bytes::default()) .unwrap() } @@ -587,7 +587,7 @@ where .status(StatusCode::INTERNAL_SERVER_ERROR) .header_typed(ContentType::text_utf8()) .header_typed(CacheControl::new().with_no_cache().with_no_store()) - .body(hyper::Body::from(err)) + .body(Bytes::from(err)) .unwrap(), } } @@ -598,14 +598,14 @@ pub fn maybe_compressed_response( compression: &Option, ) -> Response { match compression { - None => response.body(hyper::Body::from(body)).unwrap(), + None => response.body(Bytes::from(body)).unwrap(), Some(brotli_params) => { let compressed = compress_bytes(&body, brotli_params); let response = response.header( hyper::header::CONTENT_ENCODING, hyper::header::HeaderValue::from_static("br"), ); - response.body(hyper::Body::from(compressed)).unwrap() + response.body(Bytes::from(compressed)).unwrap() } } } @@ -620,51 +620,64 @@ fn to_triage_response(result: ServerResult) -> Response { match result { Ok(result) => { let response = http::Response::builder().header_typed(ContentType::text()); - response.body(hyper::Body::from(result.0)).unwrap() + response.body(Bytes::from(result.0)).unwrap() } Err(err) => http::Response::builder() .status(StatusCode::INTERNAL_SERVER_ERROR) .header_typed(ContentType::text_utf8()) - .body(hyper::Body::from(err)) + .body(Bytes::from(err)) .unwrap(), } } -async fn run_server(ctxt: Arc>>>, addr: SocketAddr) { +async fn run_server( + ctxt: Arc>>>, + addr: SocketAddr, +) -> anyhow::Result<()> { let server = Server::new(ctxt); - let svc = hyper::service::make_service_fn(move |_conn| { - let ctx = server.clone(); - async move { - Ok::<_, hyper::Error>(hyper::service::service_fn(move |req| { - let start = std::time::Instant::now(); - let desc = format!("{} {}", req.method(), req.uri()); - serve_req(ctx.clone(), req) - .inspect(move |r| { - let dur = start.elapsed(); - info!("{}: {:?} {:?}", desc, r.as_ref().map(|r| r.status()), dur) - }) - .map(|mut r| { - if let Ok(r) = &mut r { - r.headers_mut().insert( - hyper::header::ACCESS_CONTROL_ALLOW_ORIGIN, - hyper::header::HeaderValue::from_static("*"), - ); - } - r - }) - })) - } - }); - let server = hyper::server::Server::bind(&addr).serve(svc); - if let Err(e) = server.await { - eprintln!("server error: {e:?}"); + let listener = tokio::net::TcpListener::bind(addr).await?; + loop { + let (stream, _) = match listener.accept().await { + Ok(conn) => conn, + Err(e) => { + eprintln!("accept error: {e:?}"); + continue; + } + }; + let server = server.clone(); + tokio::spawn(async move { + let svc = hyper::service::service_fn(move |req: Request| { + let ctx = server.clone(); + async move { + let start = std::time::Instant::now(); + let desc = format!("{} {}", req.method(), req.uri()); + let mut r = serve_req(ctx, req).await; + let dur = start.elapsed(); + info!("{}: {:?} {:?}", desc, r.as_ref().map(|r| r.status()), dur); + if let Ok(r) = &mut r { + r.headers_mut().insert( + hyper::header::ACCESS_CONTROL_ALLOW_ORIGIN, + hyper::header::HeaderValue::from_static("*"), + ); + } + r.map(|r| r.map(Full::new)) + } + }); + if let Err(e) = + hyper_util::server::conn::auto::Builder::new(hyper_util::rt::TokioExecutor::new()) + .serve_connection(TokioIo::new(stream), svc) + .await + { + eprintln!("connection error: {e:?}"); + } + }); } } -pub async fn start(ctxt: Arc>>>, port: u16) { +pub async fn start(ctxt: Arc>>>, port: u16) -> anyhow::Result<()> { let mut server_address: SocketAddr = "0.0.0.0:2346".parse().unwrap(); server_address.set_port(port); - run_server(ctxt, server_address).await; + run_server(ctxt, server_address).await } pub trait ResponseHeaders { From 436407d759241709920d832d20e3236c62d2aa67 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 22 Jun 2026 15:45:47 +0200 Subject: [PATCH 2/2] Upgrade to object_store 0.14 --- Cargo.lock | 251 ++++++++++++++++++++++++++++++------------- collector/Cargo.toml | 2 +- 2 files changed, 178 insertions(+), 75 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f104c37a3..2d7732f557 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -280,6 +280,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + [[package]] name = "brotli" version = "3.3.4" @@ -406,6 +415,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -499,7 +519,7 @@ dependencies = [ "ratatui", "rayon", "regex", - "reqwest 0.13.4", + "reqwest", "rustc-demangle", "semver", "serde", @@ -609,6 +629,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crabgrind" version = "0.1.10" @@ -618,6 +647,16 @@ dependencies = [ "cc", ] +[[package]] +name = "crc-fast" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5" +dependencies = [ + "digest 0.10.7", + "spin", +] + [[package]] name = "crc32fast" version = "1.3.2" @@ -695,6 +734,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + [[package]] name = "csscolorparser" version = "0.6.2" @@ -778,7 +826,7 @@ dependencies = [ "log", "native-tls", "postgres-native-tls", - "reqwest 0.13.4", + "reqwest", "rusqlite", "serde", "tokio", @@ -880,11 +928,21 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "crypto-common 0.2.2", +] + [[package]] name = "dirs" version = "6.0.0" @@ -1253,11 +1311,23 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "r-efi", + "r-efi 5.2.0", "wasi 0.14.2+wasi-0.2.4", "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "rand_core 0.10.1", +] + [[package]] name = "globset" version = "0.4.18" @@ -1409,7 +1479,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] @@ -1472,6 +1542,15 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.8.1" @@ -1505,7 +1584,6 @@ dependencies = [ "hyper", "hyper-util", "rustls", - "rustls-native-certs", "tokio", "tokio-rustls", "tower-service", @@ -1799,6 +1877,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.6" @@ -2069,7 +2156,7 @@ version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" dependencies = [ - "nix", + "nix 0.29.0", "winapi", ] @@ -2080,7 +2167,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "md-5" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b6441f590336821bb897fb28fc622898ccceb1d6cea3fde5ea86b090c4de98" +dependencies = [ + "cfg-if", + "digest 0.11.3", ] [[package]] @@ -2213,6 +2310,18 @@ dependencies = [ "memoffset", ] +[[package]] +name = "nix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "cfg_aliases", + "libc", +] + [[package]] name = "nom" version = "7.1.3" @@ -2281,28 +2390,33 @@ dependencies = [ [[package]] name = "object_store" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2858065e55c148d294a9f3aae3b0fa9458edadb41a108397094566f4e3c0dfb" +checksum = "765784b4390c6bcf80316e5a22f4e3661b639c9d8c83246856643c27d8ce9dbe" dependencies = [ "async-trait", + "aws-lc-rs", "base64", "bytes", "chrono", + "crc-fast", "form_urlencoded", - "futures", + "futures-channel", + "futures-core", + "futures-util", "http", "http-body-util", "humantime", "hyper", - "itertools 0.14.0", - "md-5", + "itertools 0.15.0", + "md-5 0.11.0", + "nix 0.31.3", "parking_lot", "percent-encoding", - "quick-xml 0.38.4", - "rand 0.9.2", - "reqwest 0.12.28", - "ring", + "quick-xml 0.40.1", + "rand 0.10.1", + "reqwest", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", @@ -2313,6 +2427,7 @@ dependencies = [ "walkdir", "wasm-bindgen-futures", "web-time", + "windows-sys 0.61.2", ] [[package]] @@ -2643,7 +2758,7 @@ dependencies = [ "bytes", "fallible-iterator", "hmac", - "md-5", + "md-5 0.10.6", "memchr", "rand 0.9.2", "sha2", @@ -2739,9 +2854,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.38.4" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +checksum = "2474bd2e5029e7ccb6abb2ba48cf2383a333851dedf495901544281590c7da7f" dependencies = [ "memchr", "serde", @@ -2818,6 +2933,12 @@ version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.8.5" @@ -2837,6 +2958,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.9.0" @@ -2862,6 +2994,12 @@ dependencies = [ "getrandom 0.3.2", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "ratatui" version = "0.30.0" @@ -3016,48 +3154,6 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64", - "bytes", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-native-certs", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tokio-util", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", -] - [[package]] name = "reqwest" version = "0.13.4" @@ -3091,12 +3187,14 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", + "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", ] @@ -3252,7 +3350,6 @@ checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ "aws-lc-rs", "once_cell", - "ring", "rustls-pki-types", "rustls-webpki", "subtle", @@ -3467,8 +3564,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.2.5", + "digest 0.10.7", ] [[package]] @@ -3478,8 +3575,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.2.5", + "digest 0.10.7", ] [[package]] @@ -3595,7 +3692,7 @@ dependencies = [ "parking_lot", "prometheus", "regex", - "reqwest 0.13.4", + "reqwest", "rmp-serde", "rust-embed", "rust_team_data", @@ -3643,6 +3740,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "spin" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" + [[package]] name = "spki" version = "0.7.3" @@ -3897,7 +4000,7 @@ dependencies = [ "libc", "log", "memmem", - "nix", + "nix 0.29.0", "num-derive", "num-traits", "ordered-float", @@ -4258,9 +4361,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ucd-trie" @@ -4534,9 +4637,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" dependencies = [ "futures-util", "js-sys", diff --git a/collector/Cargo.toml b/collector/Cargo.toml index 3d9348119c..3d70a864b5 100644 --- a/collector/Cargo.toml +++ b/collector/Cargo.toml @@ -43,7 +43,7 @@ regex = "1.7.1" analyzeme = "12.0.0" ratatui = "0.30" -object_store = { version = "0.13", features = ["aws"], optional = true } +object_store = { version = "0.14", features = ["aws"], optional = true } benchlib = { path = "benchlib" } database = { path = "../database" }