# 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
```