Elixir
● Functional language (10 years).
● Erlang BEAM runtime.
● Process order (M)
● Macro system.
● Let It Crash philosophy.
● Concurrency.
● Other languages best practices
based.
Slide 11
Slide 11 text
● C functions.
● Transparent functions.
● Shared Library. (SO, dll)
● Runtime loadable.
NIFs
● Dynamically linked
● Fastest way of calling C-code, Rust, Go.
Slide 12
Slide 12 text
Rustler
● Erlang NIFs
● Safe Rust Code
● No BEAM crash
● Catches rust panics.
● Supports Erlang as well
● Decoding Rust Values
● Encoding Rust values
● Type composition
● Safe reference passing.
Slide 13
Slide 13 text
Elixir Dependecy
{:rustler, "~> 0.21.1"}
Slide 14
Slide 14 text
Compiler
defp rustler_crates do
[
rustex: [path: "native/rustex",
mode: if(Mix.env() == :prod,
do: :release,
else: :debug)]
]
end