README.md

# Alambic [![Build Status](https://travis-ci.org/sdanzan/alambic.svg?branch=master)](https://travis-ci.org/sdanzan/alambic) [![Hex pm](http://img.shields.io/hexpm/v/alambic.svg?style=flat)](https://hex.pm/packages/alambic)

An Elixir collection of small utilities.

 - *Alambic.Semaphore:* a simple semaphore implementation intended for simple
   resource control scenarios.
 - *Alambic.CountDown:* a simple countdown latch implementation intended for
   simple fan in scenarios.
 - *Alambic.BlockingQueue:* a simple shared queue allowing consuming via the
   `Enum` and `Stream` modules.
 - *Alambic.BlockingCollection:* a protocol exposing standard functions to
   manipulate blocking collections.

## Installation

Add the github repository to your mix dependencies:

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

        def deps do
          [{:alambic, git: "https://github.com/sdanzan/alambic.git"}]
        end

  2. Ensure alambic is started before your application:

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

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

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

        def deps do
          [{:alambic, "~> 0.1.0"}]
        end

  2. Ensure alambic is started before your application:

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