JRuby 10.0.0.0 Released

Monday, April 14 2025

The JRuby community is pleased to announce the release of JRuby 10.0.0.0.

JRuby 10 is finally here! We’ve jumped to Ruby 3.4 compatibility and Java 21 minimum to bring you the best Ruby on JVM experience possible. We are confident this is the most compatible and stable major release we’ve ever had.

Our blog post on JRuby 10 provides a high-level overview of the major changes, with some additional details below. We will update the blog post with additional detailed articles over the coming weeks: https://blog.jruby.org/2025/04/jruby-10-part-1-whats-new

As with any “dot zero” release, we are planning a series of quick updates to address any last-minute issues that snuck into the release. Please file bugs for any issues you see while testing JRuby 10.0: https://github.com/jruby/jruby/issues

Contributors

The JRuby core team today includes Charles Oliver Nutter (@headius), Thomas Enebo (@enebo), and Karol Bucek (@kares). Over the past year we have been honored to accept contributions from many other developers, and JRuby 10 would not be as stable or complete without their help:

@andsel, @mrnoname1000, @ahorek, @evaniainbrooks, @edipofederle, @ccutrer, @danini-the-panini, @ntkme, @andrykonchin, @mohamedhafez, @jsvd, @jpcamara, @mullermp, @ikaronen-relex, @jimtng, @ryannevell, @eregon, @moste00, @sk757a

Ruby Compatibility

  • Ruby compatibility has been updated to Ruby 3.4. We consider this release equivalent to Ruby 3.4.2.
  • Most features of Ruby 3.2, 3.3, 3.4 are complete, but some are still in progress. See our checklists based on CRuby’s release notes: Ruby 3.2, Ruby 3.3, Ruby 3.4
  • Except where a more recent gem was available or a library is unsupported by JRuby, we have included the same standard libraries as Ruby 3.4.

Java 21

After nearly a decade of supporting Java 8, the JRuby team decided it’s time for us to move to a more modern version of Java. The new requirement of Java 21 will allow us to take advantage of many features that were impossible to utilize while simultaneously supporting Java 8:

  • On-by-default optimization using InvokeDynamic, which has significantly improved since Java 8.
  • Support for thousands of Fibers using the lightweight virtual thread support from Project Loom.
  • Fast native function calling and native memory management using Project Panama.
  • Greatly improved startup time using Application Class Data Store, enabled by default by our launcher executables.
  • Easier access to post-Java 21 features like the Ahead-of-time compiler cache in Project Leyden.

Upgrading to JRuby 10

This release marks a big leap forward for JRuby users, and we are standing by to help with your transition from JRuby 9.x or migration from CRuby. Support services are available to help migrate your critical applications. Many existing users trust JRuby Support by Headius Enterprises to keep their applications in peak condition and to prepare for future updates.

Issues and Pull Requests

There are hundreds of closed issues and merged pull requests in this release. Visit the JRuby 10.0.0.0 milestone for the full list.

201 Issues and PRs resolved for 10.0.0.0