View Source Unifex
Unifex is a tool for generating interfaces between native C code and Elixir, that:
- provides intuitive and concise tools for defining native interfaces,
- generates all the boilerplate for you,
- provides useful abstractions over binaries and state,
- makes native code independent from erl_nif or ei library, so the same code is usable either with NIFs or CNodes.
API documentation is available at HexDocs.
Unifex uses Bundlex to compile and load the native code. See there for supported platforms & details.
This tool is maintained by the Membrane Framework team.
This version supports bugged version of functions returning nil, as well as fixed ones. This functionality should be removed in version 2.0.0 For more info see: Issue
Installation
To install, you need to configure Mix project as follows:
defmodule MyApp.Mixfile do
use Mix.Project
def project do
[
app: :my_app,
compilers: [:unifex, :bundlex] ++ Mix.compilers, # add unifex and bundlex to compilers
...,
deps: deps()
]
end
defp deps() do
[
{:unifex, "~>> 1.2.0"}
]
end
end
Usage
For detailed usage description see Creating Unifex Natives guide.
Supported types
For currently supported types see Supported Types section.
See also
Unifex depends on the following libraries:
Copyright and License
Copyright 2018, Software Mansion
Licensed under the Apache License, Version 2.0