diff --git a/Cargo.lock b/Cargo.lock index 7c89533d1..94540b3d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2342,15 +2342,6 @@ dependencies = [ "winreg 0.52.0", ] -[[package]] -name = "retry" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9166d72162de3575f950507683fac47e30f6f2c3836b71b7fbc61aa517c9c5f4" -dependencies = [ - "rand", -] - [[package]] name = "ring" version = "0.17.13" @@ -2569,6 +2560,7 @@ dependencies = [ "ar", "assert_cmd", "async-trait", + "backon", "base64 0.21.7", "bincode", "blake3", @@ -2611,7 +2603,6 @@ dependencies = [ "regex", "reqsign", "reqwest 0.12.5", - "retry", "rouille", "semver", "serde", diff --git a/Cargo.toml b/Cargo.toml index ba081661b..0888b9446 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,9 @@ strip = true anyhow = { version = "1.0", features = ["backtrace"] } ar = "0.9" async-trait = "0.1" +backon = { version = "1", default-features = false, features = [ + "std-blocking-sleep", +] } base64 = "0.21" bincode = "1" blake3 = "1" @@ -78,7 +81,6 @@ reqwest = { version = "0.12", features = [ "rustls-tls-native-roots", "trust-dns", ], optional = true } -retry = "2" semver = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/src/client.rs b/src/client.rs index f13ec2be7..88d93fc8a 100644 --- a/src/client.rs +++ b/src/client.rs @@ -16,8 +16,8 @@ use crate::errors::*; use crate::net::Connection; use crate::protocol::{Request, Response}; use crate::util; +use backon::BlockingRetryable; use byteorder::{BigEndian, ByteOrder}; -use retry::{delay::Fixed, retry}; use std::io::{self, BufReader, BufWriter, Read}; /// A connection to an sccache server. @@ -79,7 +79,10 @@ pub fn connect_with_retry(addr: &crate::net::SocketAddr) -> io::Result Ok(conn), Err(e) => Err(io::Error::new( io::ErrorKind::TimedOut,