mrubyをSQLiteに組み込んでみた


mruby いいですね〜。


とりあえずSQLiteから使えるようにしてみました。


https://github.com/spiritloose/sqlite3ext-mruby


とりあえずこんなことができます。

SELECT mrb_eval('ARGV.shift.to_i * 2', 42);
SELECT mrb_load('/path/to/library.rb');
SELECT mrb_load_irep('/path/to/library.mrb');


eval とか load できるだけじゃ面白くないので、ruby で関数を定義できるようにしてみた。

def fib(n)
  n < 2 ? n : fib(n - 1) + fib(n - 2)
end

create_function(:fib) do |n|
  fib(n)
end

っていうファイルを mrb_load すると呼び出せるようになる。

SELECT fib(30);


非常に組み込みやすくて良いわけですが、どう使うと面白いかなぁ。

MobiRuby は素晴らしいですねぇ。


と、約2年ぶりに更新してみるw