# GenQueue
[![Build Status](](
[![GenQueue Version](](

GenQueue is a specification for queues.

This project currently provides the following functionality:

  * `GenQueue` ([docs]( - a behaviour for queues

  * `GenQueue.Adapter` ([docs]( - a behaviour for implementing adapters for a `GenQueue`

  * `GenQueue.JobAdapter` ([docs]( - a behaviour for implementing job-based adapters for a `GenQueue`

  * `GenQueue.Job` ([docs]( - a struct for containing job-enqueuing instructions

## Installation

The package can be installed by adding `gen_queue` to your list of dependencies in `mix.exs`:

def deps do
    {:gen_queue, "~> 0.1.8"}

## Documentation

See [HexDocs]( for additional documentation.

## Adapters

The true functionality of `GenQueue` comes with use of its adapters. Currently, the following
adapters are supported.

  * [GenQueue Exq]( - Redis-backed job queue.
  * [GenQueue TaskBunny]( - RabbitMQ-backed job queue.
  * `GenQueue Que` - Mnesia-backed job queue. Currently has an Elixir 1.6 bug. Not available until this is fixed.
  * [GenQueue Toniq]( - Redis-backed job queue.
  * [GenQueue Verk]( - Redis-backed job queue.
  * [GenQueue OPQ]( - GenStage-backed job queue.

More adapters are always welcome!

## Contributors

 * Nick Sweeting - [@nsweeting](
 * Austin Ziegler - [@halostatue](