README.md

# Relief

A collection of Stream oriented relief mechanisms. Supported mechanisms include

- Relief.Valve
- _TODO: build more_

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed as:

  1. Add relief to your list of dependencies in `mix.exs`:

        def deps do
          [{:relief, "~> 0.0.1"}]
        end

  2. Ensure relief is started before your application:

        def application do
          [applications: [:relief]]
        end

## Usage

### Relief Valves

A Relief.Valve stream will allow a configurable threshold of terms to pile up before pressure is releived by dropping terms.

```elixir
1..100
    |> Stream.map(fn (i) -> "message #{i}" end)
    |> Enum.into(Relief.Valve.stream(50))
    |> Stream.chunk(5) |> Stream.run
```