2个不稳定版本
0.2.0 | 2024年5月19日 |
---|---|
0.1.0 | 2023年9月29日 |
#247 in HTTP客户端
每月402次下载
5KB
reqwest-leaky-bucket
leaky-bucket
基于reqwest-ratelimit
的速率限制中间件实现,用于reqwest-middleware
。
用法
use async_trait::async_trait;
use reqwest_leaky_bucket::leaky_bucket::RateLimiter;
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};
async fn run() {
let limiter = RateLimiter::builder().max(10).initial(0).refill(5).build();
let client = ClientBuilder::new(reqwest::Client::new())
.with(reqwest_leaky_bucket::rate_limit_all(limiter))
.build();
client.get("https://crates.io").send().await.unwrap();
}
lib.rs
:
基于reqwest_middleware
、reqwest_ratelimit
和leaky_bucket
构建的请求速率限制中间件。
为leaky_bucket::RateLimiter
提供reqwest_ratelimit::RateLimiter
适配器。
示例
use async_trait::async_trait;
use reqwest_leaky_bucket::leaky_bucket::RateLimiter;
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};
async fn run() {
let limiter = RateLimiter::builder().max(10).initial(0).refill(5).build();
let client = ClientBuilder::new(reqwest::Client::new())
.with(reqwest_leaky_bucket::rate_limit_all(limiter))
.build();
client.get("https://crates.io").send().await.unwrap();
}
依赖
~6–18MB
~243K SLoC