Popularity
2.3
Declining
Activity
0.0
Stable
15
1
1

Monthly Downloads: 12
Programming language: Elixir
License: MIT License
Tags: Miscellaneous    

ratekeeper alternatives and similar packages

Based on the "Miscellaneous" category.
Alternatively, view ratekeeper alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of ratekeeper or a related project?

Add another 'Miscellaneous' Package

README

Ratekeeper

Ratekeeper is a library for scheduling rate-limited actions. It supports complex rate limits and estimates time left to resetting limits.

Installation

Add ratekeeper as dependency in mix.exs

def deps do
    [{:ratekeeper, "~> 0.2"}]
end

Usage

Limits can be set in config:

config :ratekeeper, :limits, %{"myapi.org" => [{1000, 5}, {60_000, 100}]}

or at runtime:

Ratekeeper.add_limit "myapi.org", 1000, 5
Ratekeeper.add_limit "myapi.org", 60_000, 100

This sets limits to 5 requests per 1 second and 100 requests per minute.

Appoint a request to rate limited api:

case Ratekeeper.register("myapi.org", 10_000) do
  nil ->
    raise "Rate limits exceeded, request not allowed in next 10 seconds"
  delay ->
    :timer.sleep(delay)
    MyApi.do_request()
end

Full documentation can be found at https://hexdocs.pm/ratekeeper.