hyacinth

Rate limiter that uses the Token Bucket algorithm

Usage no npm install needed!

<script type="module">
  import hyacinth from 'https://cdn.skypack.dev/hyacinth';
</script>

README

Hyacinth

Actually, it's a Token Bouquet rate limiter

Installation

When its on npm...

npm install hyacinth

Usage

var TokenBucket = require('hyacinth');

var rateLimiter = new TokenBucket({
    redis: redisClient
});

rateLimiter.rateLimit(testKey, 10, 250, 240).then(function(tokensRemaining){
    // Negative number indicates the tokens remaining but limited
    // as the cost was higher than those remaining

    if(data < 0) return requestDenied();
    requestApproved();
});

Full API

Coming soon