JRuby 10 Released
Written by Kay Ewbank   
Monday, 21 April 2025

JRuby 10 has been released with support for Ruby 3.4 (including 3.2 and 3.3 updates as well). The minimum Java version has also been increased to Java 21, allowing the language to support more modern JVM features. 

JRuby is a high performance, stable, fully threaded Java implementation of the Ruby programming language. Ruby is a high-level language drawing on elements of Perl, Smalltalk, Eiffel, Ada, and Lisp and supporting multiple programming concepts to balance functional, dynamic and object oriented programming. Fans say it is fun to use as well as useful.

 rubylogo2a

The developers say that in addition to up-to-date Ruby compatibility and support for modern JVM features, this release has had a big cleanup of internal code and external APIs, and the team believes this is their most important release ever.

Much of the work in this release has gone into improving JRuby's performance and start-up time. Charles Nutter, writing about the new version on the JRuby blog, says that while JRuby has supported optimizing Ruby code using a feature called "invokedynamic" that teaches the JVM how Ruby code works, until now it meant JRuby ran at a middle tier of optimization because of the extra startup and warmup time required on older JVMs. The new version runs with full invokedynamic optimization by default, meaning users will get the best available performance for their JRuby scripts and applications without passing any additional flags.

The change to Java 21 also means JRuby can make use of pre-cached code using OpenJDK's "Application Class Data Store" (AppCDS). This allows pre-caching code and metadata during startup. Nutter says JRuby's main executable will automatically use the right AppCDS flags on Java 21+ to optimize and cache as much as possible, which has halved the startup time of a typical JRuby command.

Another improvement is Project CRaC (Coordinated Restore at Checkpoint),  an experimental JVM feature that allows users to "checkpoint" a running process and launch multiple future processes by restoring that checkpoint.

Project Leyden is the next-generation "AppCDS", also storing data like JIT-compiled native code and optimization profiles from previous runs. The goal of Leyden is to eventually save off everything needed to start right up with optimized code, skipping the slow early stages of execution. The JRuby Team will incorporate Leyden flags into the launcher as they become available (with preview support already in Java 24).

The new version does support the Rails web app framework as far as version 7.1, with work ongoing to support Rails 8. The plan is that the support will be added this summer. 

JRuby 10 is available now.  

 rubylogo2a

More Information

JRuby On GitHub

Related Articles

Ruby 3.4 Improves YJIT

Ruby 3.3 Makes Prism Parser Default

Ruby 3.2 Adds WebAssembly Support

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Kafka 4 Adds Queue Semantics Support
17/04/2025

Kafka 4.0 has been released, with major changes. This is the first version to operate entirely in KRaft mode by default. It also adds a new consumer group protocol designed to dramatically improve reb [ ... ]



Linus Torvalds On Git
18/04/2025

It is 20 years since Linus Torvalds wrote Git, regarding it as a tool necessary for building the Linux Kernel. Looking back says that it was never a big thing for him and that the credit for Git  [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 21 April 2025 )