# netcode-io [](https://travis-ci.org/Mokosha/netcode-io)
Haskell bindings to the
[netcode.io](https://github.com/networkprotocol/netcode.io) library
## Development
These bindings were developed using `stack` in the "usual" way. We expect
that anyone building from source to use the same workflow.
### Windows
The cabal file specifies that the `sodium` library is required for building
this package. Unfortunately, this is a bit tricky on Windows since there's no
native package manager. To use this with Windows, we recommend using
[`MSYS2`](https://www.msys2.org/). `msys2.exe` has a built-in shell for using
the `gcc` toolchain on Windows. This toolchain is compatible with the one `ghc`
uses. Within this environment, you can install `sodium` using the `pacman`
package manager:
```
$ pacman -S mingw64/mingw-w64-x86_64-libsodium
```
Once installed, you can add the following lines to your global `config.yaml`:
```
extra-include-dirs:
- D:\msys64\mingw64\include
extra-lib-dirs:
- D:\msys64\mingw64\lib
```
Your `config.yaml` is located at your `%STACK_ROOT%` directory:
```
C:\> stack path --stack-root
C:\path\to\stack\root
```
### OS X
On MacOS, we can install `sodium` simply by using homebrew:
```
$ brew install libsodium
```
## LICENSING
IANAL, but these bindings use
[the same license](https://github.com/networkprotocol/netcode.io/blob/master/LICENCE)
that the original library uses, so you must comply with both.