JRuby, an implementation of Ruby on the JVM
Ruby Java C HTML Yacc XSLT Other
Latest commit e816e5a Dec 8, 2016 @headius headius Mild refactoring of JITCompiler and added IR metrics.
Moved all the inner classes to toplevel since this file was
getting pretty big and shared more logic between the two bytecode
Failed to load latest commit information.
.mvn runnable.jar uses jruby-complete to build itself, so move it Apr 8, 2016
antlib Merge branch 'jruby-1_7' Nov 15, 2015
bench move single-byte-optimizable check into strLengthFromRubyString Nov 17, 2016
bin [Truffle] Let bin/jruby-truffle delegate to jt to pick the right laun… Nov 21, 2016
core Mild refactoring of JITCompiler and added IR metrics. Dec 8, 2016
install Update irb launcher on windows installer to mention 2.3 and not 2.2 May 16, 2016
ivy Bump for next dev version Dec 22, 2014
lib [Truffle] Use Truffle's memcpy, which works with managed objects. Nov 28, 2016
maven relocate objectweb.asm classes in me.qmx.jitescript as well Oct 13, 2016
mx.jruby Revert "[Truffle] Disable RubyDebugTest for now as it's failing const… Nov 30, 2016
rakelib Only use verbose specdoc output on non-tty like Travis and Maven. Sep 1, 2016
samples [Truffle] Got some compiler options wrong. Nov 15, 2016
spec Add specs for missing non-trivial defined? cases. See #4366. Dec 7, 2016
test Add regression test for shell exit (#4364) Dec 7, 2016
tool [Truffle] Warn against running the JRuby+Truffle launcher with JRuby+… Nov 30, 2016
truffle Merge pull request #4347 from jruby/truffle-hash-merge-check Nov 30, 2016
.gitattributes *.bash files are text files Jun 27, 2013
.gitignore [Truffle] Ignore benchmark results. Nov 26, 2016
.travis.yml [travis-ci] decrease meta/perm size + echo _OPTS before script is run Nov 17, 2016
BSDL Clean up license information a bit for #3198. Aug 6, 2015
BUILDING.md Show that we normally run minittest-excludes to only show what we pass Nov 18, 2016
CODE_OF_CONDUCT.md Add code of conduct Aug 18, 2015
COPYING [Truffle] Remove our dependency on Antlr. Oct 29, 2016
ISSUE_TEMPLATE.md Clean up issue template; people know to delete text. Jun 11, 2016
LEGAL Adding back LEGAL (for Ola) Dec 6, 2007
LICENSE.RUBY Clean up license information a bit for #3198. Aug 6, 2015
README.md README: Ruby version manager docs link [ci skip] Nov 14, 2016
Rakefile Remove broken 'rake gen' task Aug 10, 2016
VERSION Bump for next dev version Nov 9, 2016
appveyor.yml AppVeyor: JAVA_OPTS, MAVEN_OPTS to same as Travis Dec 5, 2016
ci.hocon [Truffle] Update to GraalVM 0.18 on master. Nov 13, 2016
default.build.properties Update Ruby version and stdlib to 2.3.1. Aug 18, 2016
findbugs.xml Ignore intentional String equality checking in RubyModule in FindBugs. Jun 1, 2010
lifecycle-mapping-metadata.xml * Updated config for Eclipse IDE Oct 14, 2013
mvnw Merge branch 'jruby-1_7' Feb 10, 2016
mvnw.bat adds maven-wrapper May 13, 2015
mvnw.cmd Add maven-wrapper mvnw Jan 27, 2016
pom.rb Update JNR dependencies to latest. Sep 29, 2016
pom.xml Bump for next dev version Nov 9, 2016


JRuby - an implementation of the Ruby language on the JVM

Master: Build Status 1.7 branch: Build Status


JRuby is an implementation of the Ruby language using the JVM.

It aims to be a complete, correct and fast implementation of Ruby, at the same time as providing powerful new features such as concurrency without a global-interpreter-lock, true parallelism, and tight integration to the Java language to allow you to use Java classes in your Ruby program and to allow JRuby to be embedded into a Java application.

You can use JRuby simply as a faster version of Ruby, you can use it to run Ruby on the JVM and access powerful JVM libraries such as highly tuned concurrency primitives, you can use it to embed Ruby as a scripting language in your Java program, or many other possibilites.

We're a welcoming community - you can talk to us on #jruby on Freenode. There are core team members in the EU and US time zones.

Visit the JRuby website and the JRuby wiki for more information.

Getting JRuby

To run JRuby you will need a JRE (the JVM runtime environment) version 7 or higher.

Your operating system may provide a JRE and JRuby in a package manager, but you may find that this version is very old.

An alternative is to use one of the Ruby version managers.

For rbenv you will need the ruby-build plugin. You may find that your system package manager can provide these. Then you can run:

$ rbenv install jruby-

For rvm you can simply do:

$ rvm install jruby

You can also download packages from the JRuby website that you can unpack and run in place.

Building JRuby from source

See BUILDING for information about prerequisites, how to compile JRuby from source and how to test it.


Stefan Matthias Aust, Anders Bengtsson, Geert Bevin, Ola Bini, Piergiuliano Bossi, Johannes Brodwall, Rocky Burt, Paul Butcher, Benoit Cerrina, Wyss Clemens, David Corbin, Benoit Daloze, Thomas E Enebo, Robert Feldt, Chad Fowler, Russ Freeman, Joey Gibson, Kiel Hodges, Xandy Johnson, Kelvin Liu, Kevin Menard, Alan Moore, Akinori Musha, Charles Nutter, Takashi Okamoto, Jan Arne Petersen, Tobias Reif, David Saff, Subramanya Sastry, Chris Seaton, Nick Sieger, Ed Sinjiashvili, Vladimir Sizikov, Daiki Ueno, Matthias Veit, Jason Voegele, Sergey Yevtushenko, Robert Yokota, and many gracious contributors from the community.

JRuby uses code generously shared by the creator of the Ruby language, Yukihiro Matsumoto matz@netlab.co.jp.

Project Contact: Thomas E Enebo tom.enebo@gmail.com


JRuby is licensed to you under three licenses - the EPL 1.0, GPL 2 and LGPL 2.1. Some components have other licenses and copyright. See the COPYING file for more specifics.