2020-08-03 21:44:05
"Elixir Nifs" というのがあるらしい
以前からこの "Nifs" という文字は見かけたことがありましたが、特に調べようとしていませんでした。
Rustに関する以下の記事を読んでいる最中に不意に "Elixir Nifs" という文字が飛び込んできたので改めて調べました。
"Nifs" というのは "native implemented functions" の略
ErlangにはC言語で実装された機能を使用する機能があるようです。このC言語で実装された関数を "native implemented functions" というようです。ElixirはErlangの関数を実行できるのでElixirからもCプログラムを実行することができるようです。
この "Nifs" 見覚えがある
以前投稿した Elixir Bcrypt のパスワード認証がどうやって動いているのか全く分からない という記事内で "nif" という言葉が出てきました。Bcryptによる暗号処理に関する部分なので速度を出すためにC言語で実装されたプログラムが利用されるのも納得です。
どうやらRustで実装されたプログラムもElixirから実行できるらしい
さっと調べた限りですが "Nifs" というとC言語で実装されたものというのが慣習的なようですがRustでも可能なようです。巷で話題のRustによる "Nifs" も近々試します。はじめに記載した記事でもRustによる "Nifs" の話のようです。