README.md

# ExTermbox

[![Hex.pm](https://img.shields.io/hexpm/v/ex_termbox.svg)](https://hex.pm/packages/ex_termbox)
[![Hexdocs.pm](https://img.shields.io/badge/api-hexdocs-brightgreen.svg)](https://hexdocs.pm/ex_termbox)

Low-level [termbox](https://github.com/nsf/termbox) bindings and a high-level,
functional terminal UI kit for Elixir.

The low-level bindings can already be used; the high-level APIs are still under
active development and subject to change.

For the API Reference, see: [https://hexdocs.pm/ex_termbox](https://hexdocs.pm/ex_termbox).

## Getting Started

TODO - Add examples & screenshots here.

## Installation

### From Hex

Add ExTermbox as a dependency in your project's `mix.exs`:

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

The Hex package bundles a compatible version of termbox. There are some compile
hooks to automatically build and link a local copy of `ltermbox` for your
application. This should happen the first time you build ExTermbox (e.g., via
`mix deps.compile`).

So far the build has been tested on macOS and a few Linux distros. Please add
an issue if you encounter any issues.

### From Source

To try out the master branch, first clone the repo:

```bash
git clone --recurse-submodules git@github.com:ndreynolds/ex_termbox.git
cd ex_termbox
```

The `--recurse-submodules` flag (`--recursive` before Git 2.13) is necessary in
order to additionally clone the termbox source code, which is required to
build this project.

Next, fetch the deps:

```
mix deps.get
```

Finally, try out one of the included [`examples/`](examples):

```
mix run examples/rendering.exs > debug.log
```

If you see lots of things drawn on your terminal screen, you're good to go. Use
"q" to quit in the examples.