v0.5.1 (2026-10-04)

Improved validation: full refill time must be less than max_idle_period.

v0.5.0 (2026-09-27)

Breaking changes:

  • rate limiter modules generate own macros that replace global macros

  • rate limiter options replace global macro options and server options as the main form of configuration

  • each rate limiter module provides child spec for starting AtomicBucket server managing its buckets

  • persistent is now a parameter of rate limiter module, affecting all of its buckets

  • raw_request and multi_request macros are now simply request

  • multi-bucket details option converted to a separate request_details macro

v0.4.1 (2026-09-21)

Improve validation of sub-bucket rates. Move benchmark support file out of the project. Set process labels for AtomicBucket servers.

v0.4.0 (2026-09-20)

Requires Elixir >=1.17 and Erlang >=27. New feature: enforce multiple rate limits in a single operation via multi_request/4. Lazy refills in raw_request/5. Move bucket cleanup procedure to a task for easy gc. Improve performance of the cleanup procedure. Fix flaky tests. Improve docs.

v0.3.1 (2026-08-16)

Create unique server id in child spec based on the table for easier inclusion of multiple servers in application children.

v0.3.0 (2026-08-12)

20-30% performance gain for normal size buckets on 64bit. Benchmarking improvements.

v0.2.0 (2026-06-07)

Add support for variable cost and token "refunds" via raw_request/5

v0.1.3 (2026-02-10)

Fix: bucket reference passed instead of bucket id in do_params_request/5

v0.1.2 (2026-02-08)

More docs improvements

v0.1.1 (2026-02-07)

Minor improvements and docs updates

v0.1.0 (2026-02-06)

Initial Release