mruby (エムルビー) は、組み込みシステム向けの軽量なRuby言語処理系である[3]。このプロジェクトはRubyの開発者であるまつもとゆきひろがリーダーを務めており、100人以上がこのプロジェクトに貢献している。
機能
mruby 1.0ではRuby 2.1のコアAPIをサポートしているが、標準ライブラリはサポートしていない。 mrubyは基本的なRubyコードの実行に加えて、LuaのようにC言語やに簡単に組み込むことができるようになっている。
mrubyは「ISO/IEC 30170:2012」に準拠することを目標としている[3]。
例
- C言語からmrubyを呼び出す場合
#include <stdio.h> #include <mruby.h> #include <mruby/compile.h> int main(void) { mrb_state *mrb = mrb_open(); char code[] = "5.times { puts 'mruby is awesome!' }"; printf("Executing Ruby code with mruby:\n"); mrb_load_string(mrb, code); mrb_close(mrb); return 0; }
- 以下のコマンドでコンパイルと実行ができる[4]。
$ cc example.c -lmruby -lm -o example $ ./example
- プリコンパイルされたバイトコード
- mrubyにはmrubyバイトコードを実行するための最小限の仮想機械が組み込まれている。
$ mrbc test.rb $ mruby -b test.mrb