What is Quarkus?

Copy URL

Quarkus is a full-stack, Kubernetes-native Java framework made for Java virtual machines (JVMs) and native compilation, optimizing Java specifically for containers and enabling it to become an effective platform for serverless, cloud, and Kubernetes environments.

Quarkus is designed to work with popular Java standards, frameworks, and libraries like Eclipse MicroProfile and Spring, as well as Apache Kafka, RESTEasy (JAX-RS), Hibernate ORM (JPA), Spring, Infinispan, Camel, and many more.

Quarkus’ dependency injection solution is based on CDI (contexts and dependency injection) and includes an extension framework to expand functionality and to configure, boot, and integrate a framework into your application. Adding an extension is as easy as adding a dependency, or you can use Quarkus tooling.

It also provides the correct information to GraalVM (a universal virtual machine for running apps written in a number of languages, including Java and JavaScript) for native compilation of your application.

 

 

Quarkus was designed to be easy to use right from the start, with features that work well with little to no configuration.

Developers can choose the Java frameworks they want for their applications, which can be run in JVM mode or compiled and run in native mode.

Built with an eye to enjoyability for developers, Quarkus also includes the following capabilities:

  • Live coding so that developers can immediately check the effect of code changes and quickly troubleshoot them
  • Unified imperative and reactive programming with an embedded managed event bus
  • Unified configuration
  • Easy native executable generation

Whether an application is hosted on a public cloud or in an internally hosted Kubernetes cluster, characteristics like fast startup and low memory consumption are important to keeping overall host costs down.

Quarkus was built around a container-first philosophy, meaning it’s optimized for lower memory usage and faster startup times in the following ways:

  • First-class support for Graal/SubstrateVM
  • Build-time metadata processing
  • Reduction in reflection usage
  • Native image preboot

So Quarkus builds applications to consume 1/10th the memory when compared to traditional Java, and has a faster startup time (as much as 300 times faster), both of which greatly reduce the cost of cloud resources.

Quarkus is designed to seamlessly combine the familiar imperative style code and the non-blocking, reactive style when developing applications.

This is helpful for both Java developers who are used to working with the imperative model and don’t want to switch things up, and those working with a cloud-native/reactive approach.

The Quarkus development model can adapt itself to whatever app you’re developing.

Quarkus is an effective solution for running Java in this new world of serverless architecture, microservices, containers, Kubernetes, function-as-a-service (FaaS), and cloud because it was created with all these things in mind.

Learn more about how Quarkus combines imperative and reactive
Hub

The official Red Hat blog

Get the latest information about our ecosystem of customers, partners, and communities.

All Red Hat product trials

Our no-cost product trials help you gain hands-on experience, prepare for a certification, or assess if a product is right for your organization.

Keep reading

What is application migration?

Application migration is a process that can improve workloads by moving an application from one environment to another.

Stateful vs stateless

Whether something is stateful or stateless depends on how long the state of interaction with it is being recorded and how that information needs to be stored.

What is an application development platform?

An application development platform is a set of integrated technologies that enable teams to build software applications efficiently.

Application development and delivery resources

Related articles