mruby

From Wikipedia, the free encyclopedia
Jump to: navigation, search
mruby
Mruby logo red.svg
Developer(s) Yukihiro Matsumoto et al.
Stable release 1.1.0 / November 19, 2014 (2014-11-19)
Development status Active
Written in C and Ruby
Operating system Cross-platform
Type Ruby programming language interpreter
License MIT License
Website mruby.org

mruby is an interpreter for the Ruby programming language with the intention of being lightweight and easily embeddable.[1][2] The project is headed by Yukihiro Matsumoto, with over 100 contributors currently working on the project.

Features[edit]

mruby 1.0 supports the Ruby 2.1 core API but none of the standard library. As well as being able to execute most basic Ruby code, mruby also features a bytecode compiler and virtual machine, as well as the ability to be easily embedded and integrated into C or C++ code, in a similar manner to Lua or Tcl.

mruby also aims to be compliant with the ISO/IEC 30170:2012 standard.[1]

Examples[edit]

Calling mruby from C[edit]

#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;
}

Assuming that you have mruby installed, the following program can be compiled and executed by running the following command from your terminal:[3]

$ cc example.c -lmruby -lm -o example
$ ./example

Precompiled Bytecode[edit]

mruby includes a minimalistic virtual machine used to execute mruby bytecode, nicknamed ritevm:

$ mrbc test.rb
$ mruby -b test.mrb

The first command compiles Ruby code to mruby bytecode, creating a file called "test.mrb", which can then be executed by appending the "-b" flag to the normal interpreter arguments.[4]

References[edit]

  1. ^ a b "mruby/mruby". GitHub. Retrieved 2013-12-29. 
  2. ^ mruby and MobiRuby announced
  3. ^ Aimonetti, Matt (2012-04-25). "Getting started with mruby". Retrieved 2013-12-29. 
  4. ^ geekmonkey (2012-10-30). "An introduction to Mini Ruby". Retrieved 2013-12-29.