resilient 0.1.0

A Rust resilience library providing retry, circuit breaker, timeout, bulkhead, and rate limiting policies
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use resilient::{RateLimitResult, RateLimiter};
use std::time::Duration;

#[tokio::main]
async fn main() {
    let policy = RateLimiter::default()
        .with_max_tokens(3)
        .with_refill_rate(Duration::from_secs(10));

    for i in 0..6 {
        let result: Result<String, RateLimitResult<String>> = policy
            .run(|| async { Ok::<_, String>("allowed".to_string()) })
            .await;
        println!("call {}: {:?}", i + 1, result);
    }
}