Dev News Daily ENDE

Quarkus 4.0 Beta1 brings HTTP/3 and io_uring, with the final due in November

The Quarkus team has released 4.0.0.Beta1, the first beta of the framework's next major version. The final release is planned for the end of November, and the team is asking for two things now: extension developers should migrate their extensions, and users should test their applications and report issues.

The announcement lists the main changes. Quarkus 4 moves to a new base Java version, which the team says makes virtual threads more central, and to a new foundation for its networking layer. It describes QUIC as the new basis for distributed systems, covering HTTP/3, MQTT over QUIC and WebTransport, and adds opt-in HTTP/3 support with automatic certificate generation in dev and test modes. Applications can use epoll or io_uring for better concurrency, including in native executables.

For observability, an @Observed annotation or a programmatic API generates metrics and traces, working with Micrometer and OpenTelemetry, and the Dev UI gains a built-in observability section in dev mode. The release also brings JSON Merge Patch, a new multipart API, and integration of the new major version of Hibernate with Jakarta Persistence 4.0 and Jakarta Data 1.1. Messaging gets a dedicated JMS extension compatible with Spring JMS, pooled JMS and IronJacamar, plus improved Kafka transaction support.

There is a migration guide, and the team warns that it is denser than for the usual minor releases. Extension maintainers are told that now is the time to start, with help offered on Zulip.

This comes a day after Quarkus 3.40 became the current long-term support line, supported for 12 months, so teams have a stable branch to stay on while they test the new one.

Quarkus 4.0 Beta1 brings HTTP/3 and io_uring, with the final due in November
Quarkus 4.0 Beta1 brings HTTP/3 and io_uring, with the final due in November — Dev News Daily

Why it matters

A major version with a new Java baseline, a new networking layer and a new Hibernate generation is a migration project, not a dependency bump. Two months from first beta to final is short, so the teams most likely to hit problems, those with their own extensions, have the least time to find them.

Written by Victoria Shinder.