[go: up one dir, main page]

reessaie 3.0.0

Companion to reqwest_retry to use the Retry-After HTTP header if available
docs.rs failed to build reessaie-3.0.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

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.