Skip to content

clechasseur/reessaie

reessaie

CI codecov Security audit crates.io downloads docs.rs Contributor Covenant

Companion library to reqwest-retry with helpers to use the Retry-After HTTP header to control the time between retries, if it's available.

Partially inspired by reqwest-retry-after.

Installing

Add reessaie to your dependencies:

[dependencies]
reessaie = "3.0.0"

or by running:

cargo add reesaie

Example

use anyhow::Context;
use reessaie::{RetryAfterMiddleware, RetryAfterPolicy};
use reqwest::Client;
use reqwest_middleware::ClientBuilder;

async fn get_with_retries(url: &str, max_retries: u32) -> Result<String, anyhow::Error> {
    let policy = RetryAfterPolicy::with_max_retries(max_retries);
    let client = ClientBuilder::new(Client::new())
        .with(RetryAfterMiddleware::new_with_policy(policy))
        .build();

    Ok(client
        .get(url)
        .send()
        .await
        .with_context(|| format!("error getting {url}"))?
        .text()
        .await
        .with_context(|| format!("error getting text for {url}"))?)
}

For more information, see the docs.

Minimum Rust version

reessaie currently builds on Rust 1.88 or newer.

About

Companion to reqwest_retry to use the Retry-After HTTP header if available

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •