README.md
## Ockam vault
This application provides NIFs to access Vault functions implemented in Rust.
## NIF libs
This application requires a `libockam_elixir_ffi.so` NIF to function.
Ockam release provides pre-built NIF libraries for MacOS(universal) and Linux(x86_64_gnu) in https://github.com/build-trust/ockam/releases/latest
If you run this application on supported architectures, it will download the libraries from release.
For other architectures the build process will try to re-build the NIFs and put them in `priv/native`.
**HEX packages are shipped with release NIFs of same version number as the HEX package.**
## Rebuilding NIFs
NIFs are built using CMake
Build requires existing and built of `ockam_vault` and `ockam_ffi` Rust libraries, you can build them in `implementations/rust/ockam/ockam_ffi` by running `cargo build --release`.
You can force build the NIFs even for MacOS and Linux by running `mix recompile.native`.
If there are some issues with the libs loading, for example.
**NOTE Custom built libs take precedence when loading. If there are lib files in `priv/native`, they will be used instead those downloaded to `priv/.../native`**
## Publishing the package
To publish the current version:
`mix hex.publish`
Publish will download release libs from the same version as the package.
To build a new version (without changing mix.exs):
`VERSION=<ockam_version> mix hex.publish`