README.md

Mnemonix
========

> *A unified interface to key-value stores.*

Synopsis
--------

`Mnemonix` aims to help you:

  - Get running with key-values stores with minimal ceremony
  - Experiment with different backends for your application
  - Offer end-users of your library liberty to choose their backend

It encodes the behaviour, lifecycle, and feature set of a key-value store in a common interface, normalizes different store APIs to conform to that interface, and exposes access to them with `GenServer` and `Map` APIs.

Learn more about `Mnemonix` by [reading the docs](https://hexdocs.pm/mnemonix).

##### Pronunciation: *`noo-MAHN-icks`*

> Mnemonic systems are techniques or strategies consciously used to improve memory. They help use information already stored in long-term memory to make memorization an easier task.
>
> -- *[Mnemonics](https://en.wikipedia.org/wiki/Mnemonic)*, **Wikipedia**

Installation
------------

1. Add `Mnemonix` to your project's dependencies in its `mix.exs`:

```elixir
def deps do
  [{:mnemonix, "~> 0.1.0"}]
end
```

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

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

3. Follow setup instructions for any key-value stores you want to use:

4. Run `mix deps.get`.

Contributing
------------

Pull requests are welcome and greatly appreciated!

Here are useful commands if you've just forked the project and want to contribute:

- `mix deps.get`: Get development dependencies
- `mix test`:     Run the tests
- `mix docs`:     Generate documentation