README.md

# Retort

[![CircleCI](https://circleci.com/gh/C-S-D/retort.svg?style=svg)](https://circleci.com/gh/C-S-D/retort)
[![Code Climate](https://codeclimate.com/github/C-S-D/retort/badges/gpa.svg)](https://codeclimate.com/github/C-S-D/retort)
[![Deps Status](https://beta.hexfaktor.org/badge/all/github/C-S-D/retort.svg)](https://beta.hexfaktor.org/github/C-S-D/retort)
[![Inline docs](http://inch-ci.org/github/C-S-D/retort.svg)](http://inch-ci.org/github/C-S-D/retort)

JSONAPI over JSONRPC over RabbitMQ.

Supplies the RabbitMQ connection pool, `Retort.Connection`;
RPC servers, `Retort.Server.*`; and RPC clients, `Retort.Client.*`.

## Installation

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

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

    ```elixir
    def deps do
      [
        {:retort, "~> 1.0"},
        # connect to RabbitMQ
        {:amqp, "~> 0.1.4"}
        # dependency of `amqp` that needs to be overriden for OTP 19 compatibility
        {:amqp_client, git: "https://github.com/dsrosario/amqp_client.git", branch: "erlang_otp_19", override: true}
      ]
    end
    ```

  2. Ensure `retort` is started before your application:

    ```elixir
    def application do
      [applications: [:retort]]
    end
    ```