Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Ruby (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Alternative implementations === {{Cleanup red links|section|date=April 2025}} {{As of|2018}}, there are a number of alternative implementations of Ruby, including [[JRuby]], [[Rubinius]], and [[mruby]]. Each takes a different approach, with JRuby and Rubinius providing [[just-in-time compilation]] and mruby also providing [[ahead-of-time compilation]]. Ruby has three major alternative implementations: * [[JRuby]], a mixed [[Java (programming language)|Java]] and Ruby implementation that runs on the [[Java virtual machine]]. JRuby currently targets Ruby 3.1.x. * [[TruffleRuby]], a Java implementation using the Truffle language implementation framework with [[GraalVM]] * [[Rubinius]], a [[C++]] bytecode virtual machine that uses [[LLVM]] to compile to machine code at runtime. The bytecode compiler and most core classes are written in pure Ruby. Rubinius currently{{when|date=April 2025}} targets Ruby 2.3.1. Other Ruby implementations include: * [[MagLev (software)|MagLev]], a [[Smalltalk]] implementation that runs on [[GemTalk Systems]]' [[Gemstone (database)|GemStone/S]] VM * [[mruby]], an implementation designed to be embedded into C code, in a similar vein to [[Lua (programming language)|Lua]]. It is currently being developed by [[Yukihiro Matsumoto]] and others * [[RGSS]], or Ruby Game Scripting System, a [[Proprietary software|proprietary]] implementation that is used by the [[RPG Maker]] series of software for game design and modification of the RPG Maker engine * [[julializer]], a [[transpiler]] (partial) from Ruby to [[Julia (programming language)|Julia]]. It can be used for a large speedup over e.g. Ruby or JRuby implementations (may only be useful for numerical code).<ref name="virtual-module"/> * [[Topaz (Ruby)|Topaz]], a Ruby implementation written in [[Python (programming language)|Python]] * [[Opal (Ruby)|Opal]], a web-based interpreter that compiles Ruby to [[JavaScript]] Other now defunct Ruby implementations were: * [[MacRuby]], a [[macOS|Mac OS X]] implementation on the [[Objective-C]] runtime. Its iOS counterpart is called [[RubyMotion]] * [[IronRuby]] an implementation on the [[.NET Framework]] * Cardinal, an implementation for the [[Parrot virtual machine]] * [[Ruby Enterprise Edition]], often shortened to ''ree'', an implementation optimized to handle large-scale [[Ruby on Rails]] projects * [[HotRuby]], a [[JavaScript]] and [[ActionScript]] implementation of the [[Ruby programming language]] The maturity of Ruby implementations tends to be measured by their ability to run the [[Ruby on Rails]] (Rails) framework, because it is complex to implement and uses many Ruby-specific features. The point when a particular implementation achieves this goal is called "the Rails singularity". The reference implementation, JRuby, and Rubinius<ref name="Rubinius"/> are all able to run Rails unmodified in a production environment.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)