Minirate (minirate v0.1.13)

View Source

A simple distributed rate limiter using Mnesia.

Usage

case Minirate.check_limit("login", "user@example.com", 5) do
  {:allow, count} -> :ok
  {:block, :limit_exceeded} -> {:error, :rate_limited}
end

Configuration

config :minirate,
  mnesia_table: :rate_limiter,
  expiry_ms: 60_000,
  cleanup_period_ms: 300_000

Summary

Functions

Check if an action is within the rate limit.

Check rate limit with custom increment.

Functions

check_limit(action, id, limit)

Check if an action is within the rate limit.

Returns {:allow, count} if allowed or {:block, :limit_exceeded} if exceeded.

check_limit(action, id, limit, increment)

Check rate limit with custom increment.