fix: remove OpenSSL dependency by migrating isahc to reqwest (rustls-tls)

This commit fixes CI failures caused by curl-sys requiring OpenSSL 3.0.0+
which is not available in the CI container image (Debian bullseye).

Changes:
- Replace isahc with reqwest (rustls-tls feature) in relay-utils
- Remove isahc from workspace dependencies
- Update reqwest to use rustls-tls and json features
- Update Cargo.lock (removes curl, curl-sys, isahc, openssl-sys, native-tls)

Benefits:
- Pure Rust TLS implementation (no OpenSSL dependency)
- More portable across different Linux distributions
- Eliminates C compilation requirements for TLS
- Better security (memory-safe TLS implementation)

Affected workflows:
- Checks / cargo-clippy
- Checks / check-try-runtime
- Docs / test-doc, build-rustdoc
- Build and push images
- tests linux stable
- tests misc
This commit is contained in:
2026-01-25 14:09:46 +03:00
parent eef3eda02b
commit 75a3b24552
4 changed files with 32 additions and 281 deletions
Generated
+19 -274
View File
@@ -1553,8 +1553,8 @@ checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8"
dependencies = [
"async-task",
"concurrent-queue",
"fastrand 2.3.0",
"futures-lite 2.6.1",
"fastrand",
"futures-lite",
"pin-project-lite",
"slab",
]
@@ -1567,7 +1567,7 @@ checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5"
dependencies = [
"async-lock",
"blocking",
"futures-lite 2.6.1",
"futures-lite",
]
[[package]]
@@ -1581,7 +1581,7 @@ dependencies = [
"async-io",
"async-lock",
"blocking",
"futures-lite 2.6.1",
"futures-lite",
"once_cell",
]
@@ -1595,9 +1595,9 @@ dependencies = [
"cfg-if",
"concurrent-queue",
"futures-io",
"futures-lite 2.6.1",
"futures-lite",
"parking",
"polling 3.11.0",
"polling",
"rustix 1.1.3",
"slab",
"windows-sys 0.61.2",
@@ -1622,7 +1622,7 @@ checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7"
dependencies = [
"async-io",
"blocking",
"futures-lite 2.6.1",
"futures-lite",
]
[[package]]
@@ -1639,7 +1639,7 @@ dependencies = [
"blocking",
"cfg-if",
"event-listener 5.4.1",
"futures-lite 2.6.1",
"futures-lite",
"rustix 1.1.3",
]
@@ -1676,7 +1676,7 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-io",
"futures-lite 2.6.1",
"futures-lite",
"gloo-timers 0.3.0",
"kv-log-macro",
"log",
@@ -2451,7 +2451,7 @@ dependencies = [
"async-channel 2.5.0",
"async-task",
"futures-io",
"futures-lite 2.6.1",
"futures-lite",
"piper",
]
@@ -2670,12 +2670,6 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "castaway"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
[[package]]
name = "cc"
version = "1.2.54"
@@ -3888,37 +3882,6 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "curl"
version = "0.4.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79fc3b6dd0b87ba36e565715bf9a2ced221311db47bd18011676f24a6066edbc"
dependencies = [
"curl-sys",
"libc",
"openssl-probe 0.1.6",
"openssl-sys",
"schannel",
"socket2 0.6.2",
"windows-sys 0.59.0",
]
[[package]]
name = "curl-sys"
version = "0.4.85+curl-8.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0efa6142b5ecc05f6d3eaa39e6af4888b9d3939273fb592c92b7088a8cf3fdb"
dependencies = [
"cc",
"libc",
"libnghttp2-sys",
"libz-sys",
"openssl-sys",
"pkg-config",
"vcpkg",
"windows-sys 0.59.0",
]
[[package]]
name = "curve25519-dalek"
version = "4.1.3"
@@ -4671,15 +4634,6 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
[[package]]
name = "encoding_rs"
version = "0.8.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
dependencies = [
"cfg-if",
]
[[package]]
name = "enum-as-inner"
version = "0.6.1"
@@ -4984,15 +4938,6 @@ dependencies = [
"regex-syntax",
]
[[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"
@@ -5222,21 +5167,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",
]
[[package]]
name = "foreign-types-shared"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
name = "form_urlencoded"
version = "1.2.2"
@@ -5426,28 +5356,13 @@ version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
[[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",
@@ -6288,22 +6203,6 @@ dependencies = [
"tokio-io-timeout",
]
[[package]]
name = "hyper-tls"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
dependencies = [
"bytes",
"http-body-util",
"hyper 1.8.1",
"hyper-util",
"native-tls",
"tokio",
"tokio-native-tls",
"tower-service",
]
[[package]]
name = "hyper-util"
version = "0.1.19"
@@ -6323,11 +6222,9 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"socket2 0.6.2",
"system-configuration",
"tokio",
"tower-service",
"tracing",
"windows-registry",
]
[[package]]
@@ -6728,33 +6625,6 @@ version = "1.70.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
[[package]]
name = "isahc"
version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
dependencies = [
"async-channel 1.9.0",
"castaway",
"crossbeam-utils",
"curl",
"curl-sys",
"encoding_rs",
"event-listener 2.5.3",
"futures-lite 1.13.0",
"http 0.2.12",
"log",
"mime",
"once_cell",
"polling 2.8.0",
"slab",
"sluice",
"tracing",
"tracing-futures",
"url",
"waker-fn",
]
[[package]]
name = "itertools"
version = "0.10.5"
@@ -7429,16 +7299,6 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
[[package]]
name = "libnghttp2-sys"
version = "0.1.11+1.64.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4"
dependencies = [
"cc",
"libc",
]
[[package]]
name = "libp2p"
version = "0.56.0"
@@ -8557,23 +8417,6 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
[[package]]
name = "native-tls"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e"
dependencies = [
"libc",
"log",
"openssl",
"openssl-probe 0.1.6",
"openssl-sys",
"schannel",
"security-framework 2.11.1",
"security-framework-sys",
"tempfile",
]
[[package]]
name = "netlink-packet-core"
version = "0.7.0"
@@ -9029,32 +8872,6 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "openssl"
version = "0.10.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328"
dependencies = [
"bitflags 2.10.0",
"cfg-if",
"foreign-types",
"libc",
"once_cell",
"openssl-macros",
"openssl-sys",
]
[[package]]
name = "openssl-macros"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2 1.0.106",
"quote 1.0.44",
"syn 2.0.114",
]
[[package]]
name = "openssl-probe"
version = "0.1.6"
@@ -9067,18 +8884,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
[[package]]
name = "openssl-sys"
version = "0.9.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321"
dependencies = [
"cc",
"libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "option-ext"
version = "0.2.0"
@@ -21850,7 +21655,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
dependencies = [
"atomic-waker",
"fastrand 2.3.0",
"fastrand",
"futures-io",
]
@@ -22089,22 +21894,6 @@ version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "751fbbcf86635834dd9a700039c74ce8c7871b317acc84582d9667dad2ed9848"
[[package]]
name = "polling"
version = "2.8.0"
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",
]
[[package]]
name = "polling"
version = "3.11.0"
@@ -23211,13 +23000,13 @@ dependencies = [
"backoff",
"bizinikiwi-prometheus-endpoint",
"futures",
"isahc",
"jsonpath_lib",
"num-traits",
"parking_lot 0.12.5",
"pezbp-runtime",
"pezsp-runtime",
"pezsp-tracing",
"reqwest",
"serde_json",
"sysinfo",
"thiserror 1.0.69",
@@ -23234,22 +23023,17 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
dependencies = [
"base64 0.22.1",
"bytes",
"encoding_rs",
"futures-channel",
"futures-core",
"futures-util",
"h2",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"hyper 1.8.1",
"hyper-rustls 0.27.7",
"hyper-tls",
"hyper-util",
"js-sys",
"log",
"mime",
"native-tls",
"percent-encoding",
"pin-project-lite",
"quinn",
@@ -23260,7 +23044,6 @@ dependencies = [
"serde_urlencoded",
"sync_wrapper",
"tokio",
"tokio-native-tls",
"tokio-rustls 0.26.4",
"tower 0.5.3",
"tower-http 0.6.8",
@@ -24796,17 +24579,6 @@ dependencies = [
"version_check",
]
[[package]]
name = "sluice"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
dependencies = [
"async-channel 1.9.0",
"futures-core",
"futures-io",
]
[[package]]
name = "smallstr"
version = "0.3.1"
@@ -24839,7 +24611,7 @@ dependencies = [
"async-net",
"async-process",
"blocking",
"futures-lite 2.6.1",
"futures-lite",
]
[[package]]
@@ -24862,7 +24634,7 @@ dependencies = [
"either",
"event-listener 5.4.1",
"fnv",
"futures-lite 2.6.1",
"futures-lite",
"futures-util",
"hashbrown 0.15.5",
"hex",
@@ -24912,7 +24684,7 @@ dependencies = [
"event-listener 5.4.1",
"fnv",
"futures-channel",
"futures-lite 2.6.1",
"futures-lite",
"futures-util",
"hashbrown 0.15.5",
"hex",
@@ -25667,7 +25439,7 @@ version = "3.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
dependencies = [
"fastrand 2.3.0",
"fastrand",
"getrandom 0.3.4",
"once_cell",
"rustix 1.1.3",
@@ -26192,16 +25964,6 @@ dependencies = [
"syn 2.0.114",
]
[[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-retry"
version = "0.3.0"
@@ -26939,9 +26701,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "uuid"
version = "1.19.0"
version = "1.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a"
checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f"
dependencies = [
"getrandom 0.3.4",
"js-sys",
@@ -27105,12 +26867,6 @@ dependencies = [
"libc",
]
[[package]]
name = "waker-fn"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
[[package]]
name = "walkdir"
version = "2.5.0"
@@ -27902,17 +27658,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-registry"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"
dependencies = [
"windows-link",
"windows-result 0.4.1",
"windows-strings",
]
[[package]]
name = "windows-result"
version = "0.1.2"
+3 -2
View File
@@ -850,7 +850,7 @@ integer-sqrt = { version = "0.1.2" }
ip_network = { version = "0.4.1" }
is-terminal = { version = "0.4.9" }
is_executable = { version = "1.0.1" }
isahc = { version = "1.2" }
# isahc removed - replaced with reqwest (rustls-tls) to eliminate OpenSSL dependency
itertools = { version = "0.11" }
jobserver = { version = "0.1.26" }
js-sys = { version = "0.3.70" }
@@ -1448,7 +1448,8 @@ regex = { version = "1.10.2" }
relay-bizinikiwi-client = { version = "0.1.0", path = "pezbridges/relays/client-bizinikiwi" }
relay-utils = { version = "0.1.0", path = "pezbridges/relays/utils" }
remote-externalities = { path = "bizinikiwi/utils/pezframe/remote-externalities", version = "0.35.0", default-features = false, package = "pezframe-remote-externalities" }
reqwest = { version = "0.12.9" }
# Using rustls-tls for pure Rust TLS - no OpenSSL dependency
reqwest = { version = "0.12.9", default-features = false, features = ["rustls-tls", "json"] }
revm = { version = "27.0.2", default-features = false }
ripemd = { version = "0.1.3", default-features = false }
rlp = { version = "0.6.1", default-features = false }
+2 -1
View File
@@ -19,7 +19,8 @@ async-std = { workspace = true }
async-trait = { workspace = true }
backoff = { workspace = true }
futures = { workspace = true }
isahc = { workspace = true }
# Using reqwest with rustls-tls for pure Rust TLS (no OpenSSL dependency)
reqwest = { workspace = true }
jsonpath_lib = { workspace = true }
num-traits = { workspace = true, default-features = true }
parking_lot = { workspace = true, default-features = true }
@@ -65,10 +65,14 @@ impl FloatJsonValueMetric {
/// Request value from HTTP service.
async fn request_value(&self) -> anyhow::Result<String> {
use isahc::{AsyncReadResponseExt, HttpClient, Request};
let request = Request::get(&self.url).header("Accept", "application/json").body(())?;
let raw_response = HttpClient::new()?.send_async(request).await?.text().await?;
let client = reqwest::Client::new();
let raw_response = client
.get(&self.url)
.header("Accept", "application/json")
.send()
.await?
.text()
.await?;
Ok(raw_response)
}