package

github.com/wout/rate_limiter

master / published May 10, 2020 / repository

A rate limiter implementation in Crystal

rate_limiter

A utility class for rate limiting, ported from @meew0's implementation in discordrb

Installation

Add this to your application's shard.yml:

dependencies:
  rate_limiter:
    github: z64/rate_limiter

Usage

require "rate_limiter"

# Make a new rate limiter that will limit based on string "usernames"
limiter = RateLimiter(String).new

# Create a bucket that allows 3 requests per second
limiter.bucket(:foo, 3_u32, 1.seconds)

# Perform a request on "z64"
limiter.rate_limited?(:foo, "z64")

Contributors

  • z64 Zac Nowicki - creator, maintainer

API

  • RateLimiter(T)

    A utility class for performing rate limit queries under certain conditions.