From 08675cd8638ad83949cac2bb1795b8ea5ce19529 Mon Sep 17 00:00:00 2001 From: Alexey Parfenov Date: Sat, 30 May 2026 14:48:57 -0700 Subject: [PATCH 1/2] fix: use rustls for self_update + drop readability reqwest feature Removes the native-tls/openssl-sys dependency that collided with rquest's BoringSSL (boring-sys2) at link time (undefined ERR_get_error_all) on Linux. - self_update: default-features=false, features=[reqwest, rustls] - readability: default-features=false (extractor-only usage; HTML is fetched via rquest) Co-Authored-By: Claude Opus 4.8 (1M context) --- Cargo.lock | 451 ++++++----------------------------------------------- Cargo.toml | 4 +- 2 files changed, 51 insertions(+), 404 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8dd308..e6d8ff0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ dependencies = [ "predicates", "readability", "regex", - "reqwest 0.12.28", + "reqwest", "rquest", "rquest-util", "self_update", @@ -213,31 +213,19 @@ dependencies = [ "tokio", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - [[package]] name = "bindgen" version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.11.0", + "bitflags", "cexpr", "clang-sys", "itertools", @@ -249,12 +237,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.11.0" @@ -280,11 +262,11 @@ version = "4.15.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4470e96bd94533c2f88c08be95a8e6d2d37a3b497a773b0a46273a376978f00" dependencies = [ - "bitflags 2.11.0", + "bitflags", "boring-sys2", "brotli", "flate2", - "foreign-types 0.5.0", + "foreign-types", "libc", "openssl-macros", "zstd", @@ -558,16 +540,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -619,7 +591,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags", "crossterm_winapi", "document-features", "parking_lot", @@ -642,16 +614,6 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.5.8" @@ -820,15 +782,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared 0.1.1", -] - [[package]] name = "foreign-types" version = "0.5.0" @@ -836,7 +789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ "foreign-types-macros", - "foreign-types-shared 0.3.1", + "foreign-types-shared", ] [[package]] @@ -850,12 +803,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "foreign-types-shared" version = "0.3.1" @@ -1004,25 +951,6 @@ dependencies = [ "wasm-bindgen", ] -[[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" @@ -1034,7 +962,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.4.0", + "http", "indexmap", "slab", "tokio", @@ -1138,17 +1066,6 @@ dependencies = [ "syn 1.0.109", ] -[[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" @@ -1159,17 +1076,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" @@ -1177,7 +1083,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.4.0", + "http", ] [[package]] @@ -1188,8 +1094,8 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.4.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -1204,7 +1110,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.4.0", + "http", "indexmap", "slab", "tokio", @@ -1217,36 +1123,6 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[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" @@ -1257,9 +1133,9 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2 0.4.13", - "http 1.4.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -1275,8 +1151,8 @@ version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "http 1.4.0", - "hyper 1.8.1", + "http", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -1286,48 +1162,19 @@ dependencies = [ "webpki-roots", ] -[[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-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.8.1", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[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", @@ -1347,8 +1194,8 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.4.0", - "http-body 1.0.1", + "http", + "http-body", "http2", "httparse", "itoa", @@ -1793,23 +1640,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "native-tls" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -1878,21 +1708,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" -[[package]] -name = "openssl" -version = "0.10.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" -dependencies = [ - "bitflags 2.11.0", - "cfg-if", - "foreign-types 0.3.2", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - [[package]] name = "openssl-macros" version = "0.1.1" @@ -1904,24 +1719,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - -[[package]] -name = "openssl-sys" -version = "0.9.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -1980,15 +1777,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -2338,7 +2126,6 @@ dependencies = [ "lazy_static", "markup5ever_rcdom", "regex", - "reqwest 0.11.27", "url", ] @@ -2348,7 +2135,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags", ] [[package]] @@ -2411,68 +2198,26 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "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 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - [[package]] name = "reqwest" version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "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-tls 0.6.0", "hyper-util", "js-sys", "log", - "native-tls", "percent-encoding", "pin-project-lite", "quinn", @@ -2481,9 +2226,8 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", - "tokio-native-tls", "tokio-rustls", "tower", "tower-http", @@ -2524,15 +2268,15 @@ dependencies = [ "antidote", "arc-swap", "async-compression", - "base64 0.22.1", + "base64", "boring2", "bytes", "cookie", "cookie_store 0.21.1", "encoding_rs", "futures-util", - "http 1.4.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", "hyper2", "ipnet", @@ -2546,8 +2290,8 @@ dependencies = [ "serde_json", "serde_urlencoded", "socket2 0.5.10", - "sync_wrapper 1.0.2", - "system-configuration 0.6.1", + "sync_wrapper", + "system-configuration", "tokio", "tokio-boring2", "tokio-util", @@ -2581,7 +2325,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", @@ -2603,15 +2347,6 @@ dependencies = [ "zeroize", ] -[[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" @@ -2645,44 +2380,12 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.0", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "self-replace" version = "1.5.0" @@ -2700,12 +2403,12 @@ version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6644febaa58f323b28f7321d04e24d0020d117c27619ab869d6abdf76be9aac6" dependencies = [ - "http 1.4.0", + "http", "indicatif 0.18.4", "log", "quick-xml", "regex", - "reqwest 0.12.28", + "reqwest", "self-replace", "semver", "serde", @@ -2946,12 +2649,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" @@ -2972,36 +2669,15 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.11.0", - "core-foundation 0.9.4", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "bitflags", + "core-foundation", + "system-configuration-sys", ] [[package]] @@ -3198,16 +2874,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.4" @@ -3281,7 +2947,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -3293,11 +2959,11 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.11.0", + "bitflags", "bytes", "futures-util", - "http 1.4.0", - "http-body 1.0.1", + "http", + "http-body", "iri-string", "pin-project-lite", "tower", @@ -3455,13 +3121,11 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdc97a28575b85cfedf2a7e7d3cc64b3e11bd8ac766666318003abbacc7a21fc" dependencies = [ - "base64 0.22.1", + "base64", "cookie_store 0.22.1", - "der", "encoding_rs", "flate2", "log", - "native-tls", "percent-encoding", "rustls", "rustls-pki-types", @@ -3470,7 +3134,6 @@ dependencies = [ "socks", "ureq-proto", "utf-8", - "webpki-root-certs 1.0.6", "webpki-roots", ] @@ -3480,8 +3143,8 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d81f9efa9df032be5934a46a068815a10a042b494b6a58cb0a1a97bb5467ed6f" dependencies = [ - "base64 0.22.1", - "http 1.4.0", + "base64", + "http", "httparse", "log", ] @@ -3551,12 +3214,6 @@ dependencies = [ "ryu", ] -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" version = "0.9.5" @@ -3692,7 +3349,7 @@ 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", @@ -4083,16 +3740,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" version = "0.51.0" @@ -4151,7 +3798,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/Cargo.toml b/Cargo.toml index b50d761..f21cf12 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ regex = "1" async-trait = "0.1" owo-colors = "4" indicatif = "0.17" -self_update = { version = "0.43", features = ["rustls"] } +self_update = { version = "0.43", default-features = false, features = ["reqwest", "rustls"] } backon = "1" url = "2.5.8" mimalloc = "0.1.48" @@ -41,7 +41,7 @@ rquest = { version = "5", features = ["json", "cookies"] } rquest-util = "2" tl = "0.7" hickory-resolver = { version = "0.25", features = ["tokio"] } -readability = "0.3" +readability = { version = "0.3", default-features = false } [dev-dependencies] assert_cmd = "2" From 0c8da5c37311ac9f33a2bd404b9d9a511e586e57 Mon Sep 17 00:00:00 2001 From: Alexey Parfenov Date: Sat, 30 May 2026 14:53:42 -0700 Subject: [PATCH 2/2] fix: migrate from yanked rquest to maintained wreq 5.x rquest was renamed to wreq by upstream and all rquest 5.x versions were yanked from crates.io. Migrate to wreq 5.3.0 + wreq-util 2.2.6 (drop-in rename; the emulation API is unchanged) so the crate no longer depends on yanked versions and can receive future updates/fixes. Co-Authored-By: Claude Opus 4.8 (1M context) --- Cargo.lock | 114 +++++++++++++++++++-------------------- Cargo.toml | 4 +- src/errors.rs | 2 +- src/providers/stealth.rs | 12 ++--- 4 files changed, 66 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e6d8ff0..5255e17 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,8 +27,6 @@ dependencies = [ "readability", "regex", "reqwest", - "rquest", - "rquest-util", "self_update", "serde", "serde_json", @@ -40,6 +38,8 @@ dependencies = [ "tracing", "tracing-subscriber", "url", + "wreq", + "wreq-util", ] [[package]] @@ -2259,60 +2259,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rquest" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "821ab2b3866cc43b553364566edf7387aea98b28b87213d8a889fc2504b3b8b0" -dependencies = [ - "antidote", - "arc-swap", - "async-compression", - "base64", - "boring2", - "bytes", - "cookie", - "cookie_store 0.21.1", - "encoding_rs", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper2", - "ipnet", - "linked_hash_set", - "log", - "lru", - "mime", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "socket2 0.5.10", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-boring2", - "tokio-util", - "tower", - "tower-service", - "typed-builder", - "url", - "webpki-root-certs 0.26.11", - "windows-registry 0.5.3", -] - -[[package]] -name = "rquest-util" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e3762f6e3e0d1674a6e74ebcbcb3b8d56c895757fc2cc2aa0d5e62ccfcb21e" -dependencies = [ - "rquest", - "typed-builder", -] - [[package]] name = "rustc-hash" version = "2.1.1" @@ -2703,7 +2649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", @@ -3828,6 +3774,60 @@ dependencies = [ "wasmparser", ] +[[package]] +name = "wreq" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "137ed11c4c418fb3dc41db7323ebc49aa9b6fe6a24ce152e6b2de9d6fadd9c8f" +dependencies = [ + "antidote", + "arc-swap", + "async-compression", + "base64", + "boring2", + "bytes", + "cookie", + "cookie_store 0.21.1", + "encoding_rs", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper2", + "ipnet", + "linked_hash_set", + "log", + "lru", + "mime", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "socket2 0.5.10", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-boring2", + "tokio-util", + "tower", + "tower-service", + "typed-builder", + "url", + "webpki-root-certs 0.26.11", + "windows-registry 0.5.3", +] + +[[package]] +name = "wreq-util" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b28b3585973a8923c32c2f916e60b7b0d1cb4dd53e8cb2d7422c0ac001ef2487" +dependencies = [ + "typed-builder", + "wreq", +] + [[package]] name = "writeable" version = "0.6.2" diff --git a/Cargo.toml b/Cargo.toml index f21cf12..c0ec66d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,8 +37,8 @@ backon = "1" url = "2.5.8" mimalloc = "0.1.48" simd-json = "0.17.0" -rquest = { version = "5", features = ["json", "cookies"] } -rquest-util = "2" +wreq = { version = "5", features = ["json", "cookies"] } +wreq-util = "2" tl = "0.7" hickory-resolver = { version = "0.25", features = ["tokio"] } readability = { version = "0.3", default-features = false } diff --git a/src/errors.rs b/src/errors.rs index 9ddefee..ee1e0a1 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -26,7 +26,7 @@ pub enum SearchError { Http(#[from] reqwest::Error), #[error(transparent)] - Rquest(#[from] rquest::Error), + Rquest(#[from] wreq::Error), #[error(transparent)] Json(#[from] serde_json::Error), diff --git a/src/providers/stealth.rs b/src/providers/stealth.rs index 51298b7..3c9a6a4 100644 --- a/src/providers/stealth.rs +++ b/src/providers/stealth.rs @@ -2,8 +2,8 @@ use crate::context::AppContext; use crate::errors::SearchError; use crate::types::{SearchOpts, SearchResult}; use async_trait::async_trait; -use rquest::header::{HeaderMap, HeaderValue}; -use rquest_util::Emulation; +use wreq::header::{HeaderMap, HeaderValue}; +use wreq_util::Emulation; use std::sync::Arc; use std::time::Duration; use url::Url; @@ -17,8 +17,8 @@ impl Stealth { Self { _ctx: ctx } } - /// Build an rquest client that impersonates Chrome with full TLS fingerprint - fn build_client() -> Result { + /// Build an wreq client that impersonates Chrome with full TLS fingerprint + fn build_client() -> Result { let mut headers = HeaderMap::new(); // Chrome 136 stealth headers (matches Scrapling's browserforge output) @@ -61,7 +61,7 @@ impl Stealth { HeaderValue::from_static("gzip, deflate, br"), ); - rquest::Client::builder() + wreq::Client::builder() .emulation(Emulation::Chrome136) .default_headers(headers) .timeout(Duration::from_secs(30)) @@ -100,7 +100,7 @@ impl Stealth { }); } - let final_url = url_str.to_string(); // use original URL (rquest may not expose final URL) + let final_url = url_str.to_string(); // use original URL (wreq may not expose final URL) let html_bytes = resp.bytes().await.map_err(|e| { SearchError::Config(format!("Failed to read body: {e}")) })?;