News
JRuby 10 Released with Ruby 3.4 Support and Java 21 as Minimum Requirement
- By John K. Waters
- April 23, 2025
The JRuby team has released JRuby 10, a major upgrade of the Ruby implementation on the Java Virtual Machine (JVM), introducing compatibility with Ruby 3.4, full support for Java 21, and several performance and startup-time improvements enabled by recent developments in the Java platform.
JRuby 10 is the project’s first major version update since JRuby 9.4, released over three years ago. With this release, JRuby now incorporates features from Ruby 3.2, 3.3, and 3.4, and has passed thousands of new tests and specifications. The release also marks the end of support for Java 8, which had been maintained for over a decade.
"This is the most up-to-date and powerful JRuby release we’ve ever put together," Ruby co-lead Charles Oliver Nutter wrote in a blog post.
Key Upgrades and Platform Alignment
JRuby 10 sets Java 21 as its minimum required version, dropping longstanding support for Java 8 and aligning with the newest long-term support (LTS) JDK.
"Many of the JRuby features described in this post are possible because of that move," Nutter wrote.
With access to the latest JVM enhancements, JRuby 10 integrates features such as Project Loom (lightweight threads), Project Panama (native function access), and a cleaner, more modular internal architecture.
The release also enables invokedynamic optimization by default, a JVM feature long supported by JRuby but previously disabled for most use cases due to overhead concerns.
"JRuby 10 runs with full invokedynamic optimization by default," Nutter explained. "That means you’ll get the best available performance for your JRuby scripts and applications without passing any additional flags."
The release also enables full invokedynamic optimization by default, allowing JRuby to deliver maximum Ruby performance without requiring manual configuration. Previously, this optimization was gated behind runtime flags due to compatibility concerns with older JVM versions.
Improvements in Startup and Warmup Time
JRuby 10 leverages several recent JVM initiatives to improve application startup behavior:
- AppCDS (Application Class Data Sharing), which caches metadata to reduce future startup overhead.
- Project CRaC, which enables developers to checkpoint a running process for near-instantaneous subsequent startups.
- Early support for Project Leyden, designed to persist just-in-time compilation profiles and native code between runs.
Combined, these changes significantly reduce both the startup and warmup time of JRuby-based applications, Nutter says, "a long-standing concern for users, especially in command-line development environments.
Broader Deployment and Language Interoperability
As a JVM-based Ruby implementation, JRuby 10 can be deployed on any system supporting Java 21, including Linux, macOS, Windows, BSDs, and Solaris. It also allows Ruby applications to integrate with other JVM languages like Java, Kotlin, Scala, and Clojure.
Developers can use Java libraries directly from Ruby, bundle JRuby applications using tools like Warbler, and publish gems that depend on Maven-hosted dependencies. JRuby also supports GUI frameworks such as Glimmer and JRubyFX, and mobile development via Ruboto for Android.
Rails and Enterprise Integration
JRuby continues to support the Ruby on Rails framework, with current compatibility reaching ActiveRecord 7.1 and ongoing work to support Rails 8. The team encourages community participation in maintaining the ActiveRecord-JDBC adapter to close the gap with the latest Rails features.
The project emphasizes JRuby’s suitability for enterprise-scale deployments, especially in environments already running JVM infrastructure, such as Spring or Jakarta EE applications. JRuby allows developers to deploy Ruby applications in Java-native environments without additional infrastructure.
Installation and Getting Started
JRuby 10 requires a JDK 21 or newer. It can be installed using common Ruby version managers (e.g., rbenv, rvm, or chruby) or directly via binaries. Once installed, JRuby supports standard Ruby tools and REPL environments such as irb and pry.
Outlook
With JRuby 10, the project signals a broader commitment to leveraging Java’s evolving capabilities for Ruby development. "We’re confident this is the most compatible a JRuby 'dot zero' release has ever been," Nutter wrote.
Future blog posts from the JRuby team are expected to provide deeper guidance on topics such as Rails deployment, JVM integration, and performance tuning. "Ruby’s future depends on projects like JRuby and creative developers like you," Nutter concluded. "Let’s show them what we can do."
About the Author
John K. Waters is the editor in chief of a number of Converge360.com sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS. He can be reached at [email protected].