Quarkus 2.10.0.Final released - Preliminary work on Loom's virtual threads and various refinements all over the place

New month, new Quarkus feature release, you know the drill: Quarkus 2.10.0.Final has landed.

This version is a mix of exploratory work and refinements on existing extensions:

  • Preliminary work on Loom’s virtual threads

  • GraphQL non-blocking support

  • Kubernetes service binding support for Reactive SQL Clients

  • CacheKeyGenerator for cache extension

And much more!

Migration Guide

To migrate from 2.9, please refer to our migration guide.

What’s new?

Preliminary work on Loom’s virtual threads

The Quarkus team started experimenting with Loom’s virtual threads and a first pull request was merged.

It is still very rough and the API will be subject to change but if you are interested in Loom’s virtual threads, feel free to give it a try.

Expect more development and announcements in the coming months.

To learn more about this effort, check out the video of Clément’s and Arthur’s talk.

GraphQL non-blocking support

Quarkus offers both imperative and reactive programmatic paradigms and we work hard making sure both are exposed across the board.

The GraphQL extensions now support non-blocking workloads.

SmallRye Reactive Messaging upgrade

SmallRye Reactive Messaging has been upgraded to 3.16.0.

Kubernetes service binding support for Reactive SQL Clients

We added Kubernetes service binding support for the Reactive SQL Clients extensions.

CacheKeyGenerator for cache extension

The quarkus-cache extension was automatically generating cache keys from method parameters without a way to customize them.

A new contract CacheKeyGenerator was introduced in 2.10 to allow for this customization.

quarkus-bootstrap-maven-plugin deprecated in favor of quarkus-extension-maven-plugin

The quarkus-bootstrap-maven-plugin has been deprecated in favor of the quarkus-extension-maven-plugin.

This only has impact on extension developers who should switch to the new plugin.

We will keep publishing the deprecated plugin for a while so you it is not urgent to switch to the new one.

Better infrastructure for JDBC driver extensions

A contributor started working on a JDBC driver extension for SQLite and we improved the infrastructure for external JDBC driver extensions.

Most notably, it is now possible to indicate which Hibernate ORM dialect should be used by default even for external JDBC driver extensions.

Quiltflower decompiler support

When writing Quarkus extensions, it is often useful to decompile the generated source code to better understand what’s going on.

We used Fernflower for that until now but we have switched to Quiltflower which provides a better output.

Full changelog

You can get the full changelog of 2.10.0.CR1 and 2.10.0.Final on GitHub.


The Quarkus community is growing and has now 656 contributors. Many many thanks to each and everyone of them.

In particular for the 2.10 release, thanks to Alexey Loubyansky, Alexey Sharandin, Amos Feng, andreaTP, Andy Damevin, Anthony Dahanne, Anton Kozlov, aona42, arnavarr, Auri Munoz, Bill Burke, Clara Fang, Clement Escoffier, Davide, Eddú Meléndez, Emanuel Alves, Eric Deandrea, Erik Åsén, Erin Schnabel, Fabricio Gregorio, Falko Modler, Fedor Dudinskiy, Felipe Henrique Gross Windmoller, Foivos Zakkak, franz1981, Geoffrey De Smet, George Gastaldi, Georgios Andrianakis, Greg Stewart, Guillaume Le Floch, Guillaume Smet, Gwenneg Lepage, Holly Cummins, Ioannis Canellos, Jacob Skillin, Jakob, James Netherton, Jan Martiška, Jason T. Greene, Jay, jeanphibaconnais, Jeff MAURY, Joel Mateus, Jose, Julien Gracia, Julien Ponge, Katia Aresti, kdnakt, Kevin Wooten, kioichiyoda, Knut Wannheden, Ladislav Thon, Loïc Hermann, Loïc Mathieu, luneo7, lyoff, Manyanda Chitimbo, Marc Wrobel, Marcin Kłopotek, Martin Kouba, Martin Panzer, Matej Vasek, Matthias Andreas Benkard, Max Rydahl Andersen, Michael Anstis, Michal Karm Babacek, Michal Vavřík, Michał Szynkiewicz, Mihai.Poenaru, mun711, Nathan Erwin, Neil Moffat, newur, Oleksiy Lukin, Ozan Gunalp, Pedro Igor, Peter Palaga, Phillip Krüger, Primož Hrovat, Robert Stupp, Roberto Cortez, Romain QUINIO, Rostislav Svoboda, Sanal Kumar, Sanne Grinovero, Sergey Beryozkin, Steve Ebersole, Stuart Douglas, Stéphane Épardaud, Thomas Segismont, Vinícius Ferraz Campos Florentino, Willem Jan Glerum, Wim Goeman, xstefank, Yoann Rodière and Yoshikazu Nojima.

Come Join Us

We value your feedback a lot so please report bugs, ask for improvements…​ Let’s build something great together!

If you are a Quarkus user or just curious, don’t be shy and join our welcoming community: