CHANGELOG.md

# Changelog

## Unreleased

## 6.2.1 - 2024-02-23

- Fix issue in OTP 26 and Elixir 1.15 by not using to_existing_atom in configuration

### Changed

## 6.2.0 - 2024-01-31

- Ensure Elixir version is ~> 1.13 https://github.com/ExHammer/hammer/pull/79. 

## 6.1.0 - 2022-06-13

### Changed

- Updgrade dependency packages
- Merged https://github.com/ExHammer/hammer/pull/41 resulting in ETC without GenServer (and therefore better performance)
- Merged https://github.com/ExHammer/hammer/pull/46 remove additional whitespace
- Updated Docs based on https://github.com/ExHammer/hammer/pull/45
- Adds CREDITS.md

## 6.0.0 - 2018-10-12

### Changed

- Change the `ETS` backend to throw an error if either `expiry_ms` or
  `cleanup_interval_ms` config values are missing. This should have been fixed
  ages ago.
- Default `:pool_max_overflow` changed to `0`. It's a better default, given
  that some users have seen weird errors when using a higher overflow.
  In general, capacity should be increased by using a higher `:pool_size` instead
- Changed how the ETS backend does cleanups of data, should be more performant.


## 5.0.0 - 2018-05-18

### Added

- A new `check_rate_inc` function, which allows the caller to specify the
  integer with which to increment the bucket by. This is useful for limiting
  APIs which have some notion of "cost" per call.


## 4.0.0 - 2018-04-23

### Changed

- Use a worker-pool for the backend (via poolboy),
  this avoids bottle-necking all traffic through a single hammer
  process, thus improving throughput for the system overall

### Added

- New configuration options for backends:
  - `:pool_size`, determines the number of workers in the pool (default 4)
  - `:pool_max_overflow`, maximum extra workers to be spawned when the
    system is under pressure (default 4)
- Multiple instances of the same backend! You can now have two ETS backends,
  fifteen Redis's, whatever you want


## 3.0.0 - 2018-02-20

### Changed

- Require elixir >= 1.6
- Use a more sane supervision tree structure


## 2.1.0 2017-11-25

### Changed

- Add option to use more than one backend
- Add option to suppress all logging


## 2.0.0 - 2017-09-24

### Changed

- New, simpler API
  - No longer need to start backend processes manually
  - Call `Hammer.check_rate` directly, rather than `use`ing a macro
- Hammer is now an OTP application, configured via `Mix.Config`


## 1.0.0 - 2017-08-22

### Added
- Formalise backend API in `Hammer.Backend` behaviour


## 0.2.1 - 2017-08-10

### Changed

- Minor fixes