Today, Red Hat and the Quarkus community announced Quarkus 1.0. Quarkus is a Kubernetes-native Java stack that is crafted from best-of-breed Java libraries and standards, and tailored for containers and cloud deployments. The overall goal of Quarkus is to bring Java into a cloud-native application development future and enable it to become a leading platform for serverless, cloud and Kubernetes environments. With Quarkus, we believe Java can be better equipped to scale in the modern application development landscape, while also improving at a faster clip.
The release, which is scheduled to become available at the end of November, is the culmination of work by Red Hat and the community to add features, bug fixes and performance improvements since the project was introduced in March 2019.
Quarkus represents a fundamental shift in modern app dev and is designed to address some of the shortcomings that Java faces with regard to cloud-native application architectures like containers, microservices and serverless. Java developers are able to use Quarkus to build apps that have a faster startup time and take up less memory than traditional Java-based microservices frameworks. Quarkus includes flexible and easy to use APIs that enable developers to build cloud-native apps, and best-of-breed frameworks that are already familiar to most developers.
What Quarkus offers developers
Quarkus is designed to work out of the box with popular Java standards, frameworks and libraries like Eclipse MicroProfile, Apache Kafka, RESTEasy (JAX-RS), Hibernate ORM (JPA), CDI, Spring compatibility, Infinispan, Camel, and many more. Developers can choose the Java framework they want to use when Quarkus applications are running on the Java Virtual Machine (JVM).
Quarkus includes MicroProfile OpenTracing for observing traffic patterns between services and MicroProfile Metrics for exposing JVM, Quarkus runtime and custom application metrics to monitoring platforms like Prometheus.
There are more than 80 optimized Java framework extensions that support compiling an application to a native binary. Developers familiar with these should feel at home with Quarkus, which streamlines code for the majority of common use cases, while providing the flexibility to cover others that come up.
Live coding for fast iteration during development where code changes are automatically reflected in the running app can also help towards increased developer productivity. Quarkus also unifies reactive and imperative programming models. Developers can choose the model that best fits their use case, and more easily integrate their code with other components in a reactive system, like reactive streams with Vert.x and Kafka, reactive database APIs, and much more.
New in 1.0
The release of Quarkus 1.0 builds on the work of the previous releases and includes:
- A reactive core based on Vert.x to make reactive programming a first class feature of Quarkus
- A new non-blocking security layer, which enables reactive authentications and authorization, and also enables reactive security operations to integrate with Vert.x
- Improved Spring API compatibility, including Spring Web and Spring Data JPA, as well as Spring DI
- Support for Java 8, 11 and 13 when using Quarkus on the JVM. Java 11 native compilation support is also planned for the near future.
Looking ahead, the community is focused on adding additional extensions like enhanced Spring API compatibility, improved observability and support for long running transactions. Follow our progress, and learn how you can get involved, at Quarkus.io.