Nao000のぶろぐ

蝶を追っている少年になりたい

"Elixir Nifs" というのがあるらしい

以前からこの "Nifs" という文字は見かけたことがありましたが、特に調べようとしていませんでした。

Rustに関する以下の記事を読んでいる最中に不意に "Elixir Nifs" という文字が飛び込んできたので改めて調べました。

なぜDiscordはGoからRustへ移行するのか

"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" の話のようです。

参考資料