概要

mruby は組み込み等で使う目的に作られた軽量版の Ruby です。
主に C 言語から呼び出したりアプリケーションに組み込んで使うことを想定しています。そのため「組込みとかじゃなくて、純粋に mruby だけ使ってみたいんだ!」と思った時に簡単に試せる環境を作る方法がなかなか見つかりませんでした。

実際には Debian を使っている方であればパッケージをインストールするだけで、普通の Ruby と同じようにコマンドラインやファイルから実行することができます(([組み込みやC言語の知識は一切不要です]))。

インストール

Debian8(jessie)にはすでにパッケージが用意されているので apt-get でインストールします(https://packages.debian.org/ja/source/sid/mruby)。

$ sudo apt-get install mruby

以下のバイナリがインストールされます。

  • mruby: ruby に相当
  • mirb : irb に相当
  • mrbc : rb -> mrb に変換するバイトコンパイラ

実行

コマンドラインで実行

$ mruby -e 'puts "Hello World"'
Hello World

インタラクティブに実行

$ mirb
> puts "Hello World"
Hello World
=> nil

ファイルで実行

$ vi hoge.rb
puts "Hello World"
$ mruby hoge.rb
Hello World

コンパイルして実行

$ mrbc hoge.rb                # 標準では Rite と呼ばれる独自のバイナリ形式になる
$ file hoge.mrb               # file コマンドでは data と表示される
hoge.mrb: data
$ mruby -b hoge.mrb           # -b オプションで Rite 形式のファイルを指定する
Hello World

速度比較

通常の Ruby インタプリタと mruby インタプリタで速度の比較をしてみます。

$ vi hoge.rb
puts "Hello World"

$ time ruby hoge.rb
Hello World
ruby hoge.rb  0.02s user 0.02s system 69% cpu 0.063 total

$ time mruby hoge.rb
Hello World
mruby hoge.rb  0.00s user 0.00s system 0% cpu 0.002 total

この程度の単純なスクリプトでも30倍以上早く実行されてます。

拡張子

  • .rb : Ruby スクリプト
  • .mrb : mrbc でバイトコンパイルしたバイナリ形式