Skip to content

Repository files navigation

token_bucket_algorithm

pub.devlikespopularitypub pointslicensecodecov

This Dart package provides rate limiting by using an implementation of the token bucket algorithm.

Simple usage

final bucket =TokenBucket(
size:15,
refillInterval:constDuration(seconds:1),
refillAmount:10,
storage:MemoryTokenBucketStorage(), // optionally change the way the state of the bucket is stored
);
if(bucket.consume()) {
// Consumed 1 token successfully
}
if(bucket.consume(2)) {
// Consumed 2 tokens successfully
}

If you want to store the tokens asynchronously in a custom storage, you can also use the AsyncTokenBucket.

final bucket =AsyncTokenBucket(
size:15,
refillInterval:constDuration(seconds:1),
refillAmount:10,
storage:MyCustomAsyncTokenBucketStorage(),
);
if(await bucket.consume()) {
// Consumed 1 token successfully
}

About

Implementation of the token bucket algorithm in Dart.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages