Unifex

Hex.pm API Docs Build Status

Unifex is a tool for generating interfaces between native C code and Elixir, that:

  • provides intuitive and conscise 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 library, so once port-based interface is supported, the same code will be usable either with NIFs or ports.

API documentation is available at HexDocs.

Instalation

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, "~> 0.1"} # add unifex to deps
    ]
  end
end

Usage

For detailed usage description see Creating Unifex NIF guide.

See also

Unifex depends on the following libraries:

Copyright 2018, Software Mansion

Software Mansion

Licensed under the Apache License, Version 2.0