async_limiter 0.1.0

Simple ratelimiter for async tasks.
Documentation
  • Coverage
  • 100%
    3 out of 3 items documented1 out of 1 items with examples
  • Size
  • Source code size: 15.54 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 506.64 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • BerserkerMother

Simple rate limiter for async tasks.

Provides a structure to control rate of something. Something can be API calls to external resource or anything you want to be limited to requests per interval.

Examples:

// allows 1000 requests every 47 seconds to rick and morty api!
let limiter = RateLimiter::new(1000, Duration::from_secs(47));
for _ in 0..10000 {
    let limiter = limiter.clone();
    tokio::spawn(async move {
        limiter.wait().await;
        let body = reqwest::get("https://rickandmortyapi.com/api/episode/16")
            .await
            .unwrap()
            .text()
            .await
            .unwrap();
    });
}