Open4
[Elixir/Rust] ElixirからRustの呼び出し
ElixirからRustを呼び出すことについての整理
GitHub - rusterlium/rustler: Safe Rust bridge for creating Erlang NIF functions
- ElixirからRustをCallするにあたり、Erlang NIFの機能にてRustを呼び出す
- 使い方として
- Rust:関数書いてその関数に対してrusterのattributeを設定する
- Elixir:Ruster をuseしてcrateを指定すると、上述した自分で書いた関数を呼び出せる
GitHub - snamiki1212/example-elixir-call-rust: Elixir call Rust using rustler
- 試しに作ってみたけどロジックによってはむしろRustのほうが性能悪いことがある?。フィボナッチ数の計算だけする関数を作ってみたけど性能悪い。なにか自分の設定が悪いのか、ロジック的にRustが優位にならないものなのかちょっとわかんない。
- ただ、どちらにしても使うならきちんとベンチマークを取って比較するべきだと思った
GitHub - philss/rustler_precompiled: Use precompiled NIFs from trusted sources in your Elixir code
Rustlerの問題点としてcrateをinstallしたあとにRustをコンパイルする必要があるが、そのコンパイルタイムが長い点。このprecompiledのパッケージによって、rustのcrateをprecompiledしておくことでそのprecompiledされたcrateを直接installすることができる。
具体例として、compile に2.5mくらい掛かっていたプロジェクトにこれを使うと3.3s になったりする。