3 个不稳定版本

0.2.0 2024 年 5 月 4 日
0.1.1 2023 年 9 月 28 日
0.1.0 2023 年 9 月 28 日

#352 in HTTP 客户端

Download history • Rust 包仓库 262/week @ 2024-04-29 • Rust 包仓库 144/week @ 2024-05-06 • Rust 包仓库 108/week @ 2024-05-13 • Rust 包仓库 114/week @ 2024-05-20 • Rust 包仓库 102/week @ 2024-05-27 • Rust 包仓库 141/week @ 2024-06-03 • Rust 包仓库 125/week @ 2024-06-10 • Rust 包仓库 92/week @ 2024-06-17 • Rust 包仓库 90/week @ 2024-06-24 • Rust 包仓库 105/week @ 2024-07-01 • Rust 包仓库 106/week @ 2024-07-08 • Rust 包仓库 141/week @ 2024-07-15 • Rust 包仓库 102/week @ 2024-07-22 • Rust 包仓库 112/week @ 2024-07-29 • Rust 包仓库 73/week @ 2024-08-05 • Rust 包仓库 79/week @ 2024-08-12 • Rust 包仓库

370 次每月下载
用于 reqwest-leaky-bucket

MIT 许可证

5KB

reqwest-ratelimit

reqwest-middleware 的速率限制中间件实现。

Crates.io Docs.rs

使用方法

use async_trait::async_trait;
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};

struct RateLimiter;

#[async_trait]
impl reqwest_ratelimit::RateLimiter for RateLimiter {
    async fn acquire_permit(&self) {
        // noop
    }
}

async fn run() {
    let client = ClientBuilder::new(reqwest::Client::new())
        .with(reqwest_ratelimit::all(RateLimiter))
        .build();

    client.get("https://crates.io").send().await.unwrap();
}

lib.rs:

基于 reqwest_middleware 构建的速率限制中间件。

您需要提供自己的 RateLimiter 实现。

示例

use async_trait::async_trait;
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};

struct RateLimiter;

#[async_trait]
impl reqwest_ratelimit::RateLimiter for RateLimiter {
    async fn acquire_permit(&self) {
        // noop
    }
}

async fn run() {
    let client = ClientBuilder::new(reqwest::Client::new())
        .with(reqwest_ratelimit::all(RateLimiter))
        .build();

    client.get("https://crates.io").send().await.unwrap();
}

依赖项

~3–14MB
~198K SLoC