# NimlerHex
Nimler helpers for Elixir
## Installation
1. Install nim
2. Install nimler using nimble. `nimble install nimler`
3. Add `nimler` to mix.exs and run `mix deps.get` to install nimler from hex.pm
```mix.exs
def deps() do
[{:nimler, "~> 0.1.0"}]
end
```
4. `mix nimler.new` to generate scaffold NIF project
5. `mix compile.nimler` to compile NIF with nimler
### mix nimler.new
Generate basic nimler NIF
**Defaults**
`lib/native` is default NIF root
`lib/native/nif.nim` is default NIF file
`lib/native/nim.cfg` is default NIF nim configuration. This will be used during compilation
### mix compile.nimler
Compile NIFs in `lib/native` using [nimler](https://github.com/wltsmrz/nimler)
Nimler generates `lib/native/nif_wrapper` by default
**Configuration sample**
```mix.exs
def project do
[
app: :myproject,
version: "0.1.0",
elixir: "~> 1.10",
start_permanent: Mix.env() == :prod,
deps: deps(),
compilers: Mix.compilers ++ [:nimler], # add the nimler compiler
nimler_config: nimler_config() # add optional nimler_config
]
end
def nimler_config() do
[
compile_mode: :debug,
compile_flags: [ # passed directly to nim compile
"--verbosity:2
]
]
end
```