Interfacing Erlang with the Outer World¶
Native Libraries¶
There are plenty of different approaches on integrating NIFs written in other languages:
C¶
- edtk, a port driver toolkit
- dryverl (license BSD)
- C/C++ Generic Erlang Port Driver (license BSD)
C++¶
- EPI (license LGPL)
- eixx (license Apache2)
- C/C++ Generic Erlang Port Driver (license BSD)
- C++11 NIFPP (license Boost)
Rust¶
- Rustler (license Apache, MIT)
- erlang-rust-nif
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.
- Erlport
- C/C++, Erlang/Elixir, Java, JavaScript/node.js, Perl, PHP, Python and Ruby <http://cloudi.org/>`_
- Erlang Term Format (Ruby) https://github.com/okeuday/erlang_rb (BSD)
- Erlang Term Format (Javascript) https://github.com/okeuday/erlang_js (BSD)
- Erlang Term Format (Perl) https://github.com/okeuday/erlang_pl (BSD)
- Erlang Term Format (PHP) https://github.com/okeuday/erlang_php (BSD)