mruby

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

mruby
Mruby logo red.svg
Developer(s) Yukihiro Matsumoto et al.
Initial release April 20, 2012; 6 years ago (2012-04-20)
Stable release
1.4.1 / April 27, 2018; 2 months ago (2018-04-27)[1]
Repository Edit this at Wikidata
Written in C and Ruby
Operating system Cross-platform
Standard(s) ISO/IEC 30170:2012
Type Ruby programming language interpreter
License MIT License
Website www.mruby.org

mruby is an interpreter for the Ruby programming language with the intention of being lightweight and easily embeddable.[2][3] 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.[2]

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 and in your path, the following program can be compiled and executed by running the following command from your terminal:[4]

$ 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.[5]

References[edit]

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