speedbump 0.1.0

An extensible rate limiting library.
Documentation
use std::time::Duration;

use speedbump::{Limiter, store::memory::MemoryStore, strategy::FixedWindow};

#[tokio::main]
async fn main() {
    let fixed_window = FixedWindow::new(Duration::from_secs(10), 10);

    let store = MemoryStore::new();
    let limiter = Limiter::builder()
        .store(store)
        .strategy(fixed_window)
        .build();

    for iteration in 0..20 {
        let allowed = limiter.limit("test").await.expect("limit checking failed");
        println!("Iteration {:?}, allowed: {}", iteration, allowed);
    }
}