Rubinius is a modern language platform that supports a number of programming languages.
Rubinius includes a bytecode virtual machine, generational garbage collector, and just-in-time (JIT) native machine code compiler. Rubinius provides concurrency support via native OS threads with no global interpreter lock.
Rubinius runs on Mac OS X and many Unix/Linux operating systems. Microsoft Windows is not yet supported.
Participation in the Rubinius project is governed by the Rubinius Code of Conduct.
Many popular Ruby applications, like Rails, run on Rubinius, which aims to be compatible with Ruby version 2.2.
Rubinius includes a Ruby parser, Ruby bytecode compiler, Ruby core library, and C-API compatibility for native C extensions. The Ruby core library is written almost entirely in Ruby. The Ruby bytecode compiler and other tools, such as the debugger, are also written in Ruby. Rubinius provides the standard Ruby libraries, with the following exceptions:
- Continuation
- Ripper
- TracePoint
- Tracer
The following Ruby features are not supported on Rubinius:
- Refinements
- $SAFE levels
Rubinius uses the MPL-2.0 license. See LICENSE for details. Contributions made prior to January 3rd, 2016 are licensed under the old BSD 3-clause license. A copy of this license can be found in the file "BSD_LICENSE".
To install Rubinius, use the following steps:
- Ensure that MRI 2.0+, rubygems, rake, git and LLVM are installed
- git clone git://github.com/rubinius/rubinius.git
- cd rubinius
- bundle
- ./configure --prefix=/path/to/install/dir
- rake
When the install process finishes, follow the directions printed to the terminal to add the Rubinius executable (bin) directory to your PATH. For more information see the documentation for Build Requirements and Building Rubinius.
Rubinius comes with RubyGems built-in. To install a gem, run the following:
$ rbx -S gem install <gem_name>
The Rubinius documentation is available at the Rubinius website.
Please file tickets for bugs or problems.
For additional help, visit the Rubinius Gitter chat room.
The Rubinius team welcomes contributions. For more information, read the CONTRIBUTING file and see the documentation about contributing.