Interfacing Erlang with the Outer World¶
Native Libraries¶
Note
This page was created between 2016 and 2018, more changes might have happened since.
There are plenty of different approaches on integrating NIFs written in other languages:
C¶
dryverl (license BSD)
C/C++ Generic Erlang Port Driver (license MIT)
C++¶
EPI (license LGPL)
eixx (license Apache2)
C/C++ Generic Erlang Port Driver (license MIT)
C++11 NIFPP (license Boost)
Lua¶
erlua
erlualib (license MIT)
Python¶
Ruby¶
ErlPort (see below in “Ports”)
PHP¶
Erlang Term Format (PHP) (MIT)
Rust¶
Rustler (license Apache, MIT)
Nim¶
nimler (MIT)
Javascript¶
Perl¶
Ports and Network¶
For the situations when you still need the speed and can tolerate some call latency over, but don’t want to risk crashing your node: choose interaction over network or a port.
CloudI, A private cloud engine (C/C++, Erlang/Elixir, Java, JavaScript/node.js, Perl, PHP, Python and Ruby)