-
All configuration options List all the configuration properties per extensions
-
Creating your first application Build a REST API with live reload, dependency injection, and tests, in under 15 minutes. -
Your second Quarkus application Discover some of the features that make developing with Quarkus a joyful experience. -
Using our tooling Explore the Quarkus developer toolchain which makes Quarkus development so fast and enjoyable. -
Quarkus tools in your favorite IDE Learn more about Quarkus integrations in IDEs.
-
Ahead-of-time (AOT) caching This guide explains how to use Leyden AOT caching with Quarkus for dramatically faster startup times on JDK 24+. -
Tree-shaking JAR dependencies This guide explains how to reduce JAR size by removing unreachable classes from runtime dependencies. -
JLink packaging The jlink extension produces a custom Java runtime image containing only the modules needed to run the application. -
Re-augment a Quarkus application Use mutable jars to rebuild your application with different build time configurations.
-
Building a native executable Build native executables with GraalVM or Mandrel. -
Native reference guide This guide is a companion to the Building a Native Executable, Using SSL With Native Images, and Writing Native Applications, guides. -
Tips for writing native applications This guide is a collection of tips to help you solve the problems you encounter when compiling applications to native executable. -
Using SSL with native executables In this guide, we will discuss how you can get your native images to support SSL, as native images don't support it out of the box. -
Compressing native executables using UPX Ultimate Packer for eXecutables (UPX) is a compression tool reducing the size of executables.
-
Container images Learn how to build and push container images with Jib, OpenShift, Docker, or Podman as part of the Quarkus build. -
Quarkus base runtime image To ease the containerization of native executables, Quarkus provides a base image providing the requirements to run these executables.
-
Generating and using CycloneDX SBOMs This guide explains how to generate and use SBOMs for Quarkus applications in the CycloneDX format. -
Packaging and releasing with JReleaser This guide covers packaging and releasing CLI applications using the JReleaser tool.
-
Introduction to Contexts and Dependency Injection (CDI) Quarkus DI solution is based on the [Jakarta Contexts and Dependency Injection 4.1](https://jakarta.ee/specifications/cdi/4.1/jakarta-cdi-spec-4.1.html) specification. -
Contexts and Dependency Injection Go more in depth into the Quarkus implementation of CDI. -
Application initialization and termination You often need to execute custom actions when the application starts and clean up everything when the application stops.
-
Dev Services overview An introduction to Dev Services and a list of all extensions that support Dev Services and their configuration options. -
Compose Dev Services Configure custom Dev Services using Docker or Podman Compose. -
Using Podman with Quarkus Podman is an open-source, daemonless, and rootless container engine for developing, managing, and running OCI Containers on Linux, Windows and Mac.
-
Configuring your application Hardcoded values in your code is a no go (even if we all did it at some point ;-)). -
YAML configuration Optionally, use application.yaml instead of application.properties to configure your application. -
Mapping configuration to objects Group multiple configuration properties into an object. -
Configuration reference guide Learn more about how to configure your Quarkus applications. -
Extending configuration support Extend and customize the Configuration. -
All configuration options List all the configuration properties per extensions
-
Using Eclipse Vert.x API from a Quarkus application This guide explains how to use Vert.x in Quarkus to build reactive applications. -
Vert.x reference guide This reference guide provides advanced details about the usage and the configuration of the Vert.x instance used by Quarkus.
-
Testing your application This guide covers testing in JVM mode, native mode, and injection of resources into tests -
Continuous testing Get early test feedback with Continuous Testing. -
Testing components This reference guide covers the `QuarkusComponentTestExtension`, a JUnit extension to ease the testing of components and mocking of their dependencies. -
Measuring the coverage of your tests This guide explains how to measure the test coverage of your Quarkus application.
-
Quarkus for the Web Learn more about creating all kinds of Web applications with Quarkus. -
HTTP reference Learn more about configuring Quarkus' Vert.x based HTTP layer - and Undertow if you are using servlets. -
Using Reactive Routes This guide demonstrates how to use reactive routes.
-
Writing REST services with Quarkus REST (formerly RESTEasy Reactive) Discover how to develop highly scalable reactive REST services with Jakarta REST and Quarkus REST. -
Using the REST Client This guide explains how to use the REST Client. -
Writing JSON REST services JSON is now the lingua franca between microservices. -
Using OpenAPI and Swagger UI This guide explains how to use the OpenAPI extension to generate an OpenAPI descriptor and get a Swagger UI frontend to test your REST endpoints. -
RESTEasy Classic -
Using the legacy REST Client This guide explains how to use the RESTEasy Classic REST Client in order to interact with REST APIs (JSON and other) with very little effort. -
Using the legacy REST Client with Multipart This guide explains how to use the RESTEasy Classic REST Client to send multipart REST requests, typically to upload documents. -
Generating Jakarta REST resources with Panache Hibernate ORM REST Data with Panache simplifies the creation of CRUD applications based on Jakarta REST and Hibernate ORM. -
Use virtual threads in REST applications How to use virtual threads in a REST application -
Migrating to Quarkus REST (formerly RESTEasy Reactive) Migrating from RESTEasy Classic to Quarkus REST (formerly RESTEasy Reactive) is straightforward in most cases, however there are a few cases that require some attention.
-
SmallRye GraphQL This guide explains how to leverage SmallRye GraphQL to implement GraphQL services. -
SmallRye GraphQL Client This guide explains how to leverage SmallRye GraphQL Client to consume GraphQL services.
-
Getting started with WebSockets Next Get started with WebSockets Next to create interactive web applications. -
WebSockets Next reference guide The quarkus-websockets-next extension provides a modern declarative API to define WebSocket server and client endpoints. -
Using WebSockets with Undertow This guide explains how your Quarkus application can utilize web sockets to create interactive web applications.
-
Web dependency locator Learn more about how to use the web dependency locator
-
Configure data sources in Quarkus Use a unified configuration model to define data sources for Java Database Connectivity (JDBC) and Reactive drivers. -
Reactive SQL clients This guide covers how to use the Reactive SQL Clients in Quarkus. -
Dev Services for databases When testing or running in dev mode Quarkus can provide you with a zero-config database out of the box, a feature we refer to as Dev Services.
-
Using Hibernate ORM and Jakarta Persistence Hibernate ORM is the de facto Jakarta Persistence implementation and offers you the full breadth of an Object Relational Mapper. -
Simplified Hibernate with Quarkus Data Hibernate Hibernate is the de facto Jakarta Persistence implementation and offers you the full breadth of an Object Relational Mapper. -
Simplified Hibernate ORM with Panache Panache focuses on making your Hibernate ORM entities trivial and fun to write. -
Simplified Hibernate ORM with Panache and Kotlin This explains the specifics of using Hibernate ORM with Panache in a Kotlin project. -
Using Hibernate Reactive Hibernate Reactive is a reactive API for Hibernate ORM, supporting non-blocking database drivers and a reactive style of interaction with the database. -
Simplified Hibernate Reactive with Panache Simplified reactive ORM layer based on Hibernate Reactive. -
Use Hibernate Search with Hibernate ORM and Elasticsearch/OpenSearch Hibernate Search with Hibernate ORM allows you to index your entities in an Elasticsearch/OpenSearch cluster and easily offer full text search in all your Hibernate ORM-based applications. -
Use Hibernate Search in Standalone mode with Elasticsearch/OpenSearch Hibernate Search Standalone allows you to index your entities in an Elasticsearch/OpenSearch cluster and easily offer full text search in all your applications, even without Hibernate ORM. -
Using Blaze-Persistence This guide explains how to use Blaze-Persistence to simplify your data and DTO layers.
-
Using transactions in Quarkus The quarkus-narayana-jta extension provides a Transaction Manager that coordinates and exposes transactions to your applications as described in the Jakarta Transactions specification, formerly known as Java Transaction API (JTA). -
Using Software Transactional Memory in Quarkus This guide covers the usage of Software Transactional Memory (STM). -
Narayana LRA participant support This guide covers the usage of LRA to coordinate activities across services. -
Dev Services for LRA Start the Narayana LRA coordinator automatically in dev and test modes.
-
Validation with Hibernate Validator This guide covers how to use Hibernate Validator/Bean Validation in your REST services.
-
Using the MongoDB Client This guide covers how to use MongoDB in Quarkus. -
Simplified MongoDB with Panache This guide covers the usage of MongoDB using active records and repositories. -
Simplified MongoDB with Panache and Kotlin This guide covers the usage of MongoDB using active records and repositories in a Kotlin project. -
Dev Services for MongoDB Quarkus supports a feature called Dev Services that allows you to create various datasources without any config. -
Using the Redis Client This guide covers how to use a Redis datastore in Quarkus. -
Redis extension reference guide Redis is an in-memory data store used as a database, cache, streaming engine, and message broker. -
Dev Services for Redis Start Redis automatically in dev and test modes. -
Connecting to an Elasticsearch cluster This guide covers how to interact with an Elasticsearch cluster using the low level REST client or the Elasticsearch Java client. -
Dev Services for Elasticsearch Start Elasticsearch automatically in dev and test modes -
Using the Cassandra Client This guide covers how to use the Apache Cassandra NoSQL database in Quarkus.
-
Application data caching This guide explains how to cache expensive method calls of your CDI beans using simple annotations. -
Redis Cache Use Redis as the Quarkus cache backend -
Infinispan Cache Use Infinispan as the Quarkus cache backend -
Using the Infinispan Client This guide covers how to use Infinispan with Quarkus. -
Infinispan Client extension reference guide Infinispan is an in memory distributed data store and cache server that offers flexible deployment options and robust capabilities for storing, managing, and processing data. -
Dev Services for Infinispan Start Infinispan automatically in dev and test modes.
-
Using Flyway This guide covers how to use the Flyway extension to manage your schema migrations. -
Using Liquibase This guide covers how to use the Liquibase extension to manage your schema migrations. -
Using Liquibase MongoDB Liquibase is an open source tool for database schema change management, it allows managing MongoDB databases via its MongoDB Extension.
-
Quarkus Messaging extensions Event-driven messaging systems have become the backbone of most modern applications, enabling the building of message-driven microservices or complex data streaming pipelines. -
Quarkus virtual thread support with Reactive Messaging This guide explains how to benefit from Java virtual threads when writing message processing applications in Quarkus.
-
Quarkus Signals Learn more about how application components can interact in a loosely coupled fashion -
Using the event bus This guide explains how different beans can interact using the event bus.
-
Using JMS This guide demonstrates how your Quarkus application can use JMS messaging with AMQP 1.0 using Apache Qpid JMS, or using Apache ActiveMQ Artemis JMS.
-
Getting started with Quarkus Messaging and Apache Kafka Build two applications that communicate via Apache Kafka using Quarkus Messaging. -
Apache Kafka reference guide This reference guide provides an in-depth look on Apache Kafka and Quarkus Messaging extensions. -
Dev Services for Kafka Start Apache Kafka automatically in dev and test modes. -
Using Apache Kafka Streams This guide demonstrates how your Quarkus application can utilize the Apache Kafka Streams API to implement stream processing applications based on Apache Kafka. -
Using Apache Kafka with Schema Registry and Avro Use Apache Kafka, Avro serialized records, and connect to a schema registry. -
Using Apache Kafka with Schema Registry and JSON Schema Use Apache Kafka, Json Schema serialized records, and connect to a schema registry. -
Kafka Dev UI Dev UI extension for Apache Kafka for development purposes. -
Dev Services for Apicurio Registry Start Apicurio Registry automatically in dev and test modes.
-
Getting started with Quarkus Messaging and AMQP 1.0 This guide demonstrates how your Quarkus application can utilize Quarkus Messaging to interact with AMQP. -
Reactive Messaging AMQP 1.0 Connector reference documentation This guide is the companion to the Getting Started with AMQP 1.0. -
Dev Services for AMQP Start AMQP automatically in dev and test modes.
-
Getting started with Quarkus Messaging and Apache Pulsar This guide demonstrates how your Quarkus application can utilize Quarkus Messaging to interact with Apache Pulsar. -
Apache Pulsar reference guide This reference guide provides an in-depth look on Apache Pulsar and the Quarkus Messaging extensions. -
Dev Services for Pulsar With Quarkus Messaging Pulsar extension (quarkus-messaging-pulsar) Dev Services for Pulsar automatically starts a Pulsar broker in dev mode and when running tests.
-
Getting started with Quarkus Messaging and RabbitMQ This guide demonstrates how your Quarkus application can utilize Quarkus Messaging to interact with RabbitMQ. -
Reactive Messaging RabbitMQ Connector reference documentation This guide is the companion to the Getting Started with RabbitMQ. -
Dev Services for RabbitMQ Dev Services for RabbitMQ automatically starts a RabbitMQ broker in dev mode and when running tests.
-
Quarkus Security overview Quarkus Security is a framework that provides the architecture, multiple authentication and authorization mechanisms, and other tools to build secure and production-quality Java applications. -
Quarkus Security architecture The Quarkus Security architecture provides several built-in authentication mechanisms and is highly customizable. -
Getting started with security by using Basic authentication and Jakarta Persistence Get started with Quarkus Security by securing your Quarkus application endpoints with the built-in Quarkus Basic authentication and the Jakarta Persistence identity provider, enabling role-based access control. -
Security tips and tricks -
Authorization of web endpoints Quarkus incorporates a pluggable web security layer. -
Proactive authentication Learn how to manage proactive authentication in Quarkus, including customizing settings and handling exceptions. -
Cross-Origin Resource Sharing (CORS) Enable and configure CORS in Quarkus to specify allowed origins, methods, and headers, guiding browsers in handling cross-origin requests safely. -
Cross-Site Request Forgery prevention Cross-Site Request Forgery (CSRF) is an attack that forces an end user to execute unwanted actions on a web application in which they are currently authenticated. -
Using security with .properties file Quarkus provides support for properties file-based authentication intended for development and testing purposes. -
Security testing This document describes how to test Quarkus Security. -
Secrets in configuration Use encrypted configuration values to protect sensitive passwords, secrets, tokens and keys. -
Using a credentials provider This guide explains how to use the Vault credentials provider or implement your own custom one. -
Using SSL with native executables In this guide, we will discuss how you can get your native images to support SSL, as native images don't support it out of the box. -
Security vulnerability detection and reporting in Quarkus Most of the Quarkus tags are registered in the US National Vulnerability Database (NVD) in Common Platform Enumeration (CPE) name format.
-
Authentication mechanisms in Quarkus The Quarkus Security framework supports multiple authentication mechanisms, which you can use to secure your applications. -
Basic authentication HTTP Basic authentication is one of the least resource-demanding techniques that enforce access controls to web resources. -
Enable Basic authentication Enable Basic authentication to require a username and password before users can access your Quarkus application. -
Using JWT RBAC This guide explains how your application can use SmallRye JWT to provide secured access to the Jakarta REST endpoints. -
Build, sign, and encrypt JSON Web Tokens JSON Web Token (JWT) is defined by the RFC 7519 specification as a compact, URL-safe means of representing claims. -
Using OAuth2 RBAC This guide explains how your Quarkus application can utilize OAuth2 tokens to provide secured access to the Jakarta REST endpoints. -
Using security with WebAuthn This guide demonstrates how your Quarkus application can use WebAuthn authentication instead of passwords.
-
OpenID Connect authorization code flow mechanism for protecting web applications To protect your web applications, you can use the industry-standard OpenID Connect (OIDC) Authorization Code Flow mechanism provided by the Quarkus OIDC extension. -
Protect a web application by using OpenID Connect (OIDC) authorization code flow Discover how to secure application HTTP endpoints by using the Quarkus OpenID Connect (OIDC) authorization code flow mechanism with the Quarkus OIDC extension, providing robust authentication and authorization. -
OpenID Connect (OIDC) Bearer token authentication Secure HTTP access to Jakarta REST (formerly known as JAX-RS) endpoints in your application with Bearer token authentication by using the Quarkus OpenID Connect (OIDC) extension. -
Protect a service application by using OpenID Connect (OIDC) Bearer token authentication Use the Quarkus OpenID Connect (OIDC) extension to secure a Jakarta REST application with Bearer token authentication. -
Protect a Quarkus web application by using an Auth0 OpenID Connect provider Quarkus Security provides comprehensive OpenId Connect (OIDC) and OAuth2 support with its quarkus-oidc extension, supporting both Authorization code flow and Bearer token authentication mechanisms. -
OpenID Connect (OIDC) configuration properties As a Quarkus developer, you configure the Quarkus OpenID Connect (OIDC) extension by setting the following properties in the src/main/resources/application.properties file. -
Quarkus OpenID Connect (OIDC) expanded configuration reference Quarkus OIDC quarkus-oidc extension provides a comprehensive, highly adaptable and configurable OIDC and OAuth2 adapter implementation. -
Configuring well-known OpenID Connect providers This document explains how to configure well-known social OIDC and OAuth2 providers. -
OpenID Connect client and token propagation quickstart Learn how to use OpenID Connect (OIDC) and OAuth2 clients with filters to get, refresh, and propagate access tokens in your applications. -
OpenID Connect (OIDC) and OAuth2 client and filters You can use Quarkus extensions for OpenID Connect and OAuth 2.0 access token management, focusing on acquiring, refreshing, and propagating tokens. -
OpenID Connect (OIDC) and OAuth2 dynamic client registration Typically, you have to register an OIDC client (application) manually in your OIDC provider’s dashboard. -
Using OpenID Connect (OIDC) multitenancy This guide demonstrates how your OpenID Connect (OIDC) application can support multitenancy to serve multiple tenants from a single application. -
Dev Services and Dev UI for OpenID Connect (OIDC) You can use Dev Services for Keycloak and the Dev UI for the OpenID Connect (OIDC) Keycloak provider and adapt these services for other OpenID Connect providers. -
Migrate from Vert.x OIDC to Quarkus OIDC Learn how to migrate your Vert.x OIDC application to Quarkus and choose to either retain Vert.x OIDC or replace it with Quarkus OIDC.
-
Identity providers In the Quarkus Security framework, identity providers play a crucial role in authentication and authorization by verifying user identities. -
Quarkus Security with Jakarta Persistence You can configure your application to use Jakarta Persistence to store users' identities. -
Using security with JDBC This guide demonstrates how your Quarkus application can use a database to store your user identities. -
Using security with an LDAP realm This guide demonstrates how your Quarkus application can use an LDAP directory to store your user identities. -
Using OpenID Connect (OIDC) and Keycloak to centralize authorization Learn how to enable bearer token authorization in your Quarkus application by using Keycloak Authorization Services for secure access to protected resources. -
Using Keycloak Admin Client The Quarkus Keycloak Admin Client and its reactive twin support Keycloak Admin Client which can be used to configure a running Keycloak server.
-
Virtual thread support reference This guide explains how to benefit from Java 21+ virtual threads in Quarkus application. -
Use virtual threads in REST applications How to use virtual threads in a REST application -
Quarkus virtual thread support for gRPC services This guide explains how to benefit from Java virtual threads when implementing a gRPC service. -
Quarkus virtual thread support with Reactive Messaging This guide explains how to benefit from Java virtual threads when writing message processing applications in Quarkus.
-
Getting started with Reactive Learn more about developing reactive applications with Quarkus. -
Mutiny - Async for mere mortals Mutiny is an intuitive, reactive programming library. -
Quarkus reactive architecture Learn more about Quarkus reactive architecture. -
Using Reactive Routes This guide demonstrates how to use reactive routes. -
Reactive SQL clients This guide covers how to use the Reactive SQL Clients in Quarkus. -
Using Hibernate Reactive Hibernate Reactive is a reactive API for Hibernate ORM, supporting non-blocking database drivers and a reactive style of interaction with the database. -
Simplified Hibernate Reactive with Panache Simplified reactive ORM layer based on Hibernate Reactive. -
Using the event bus This guide explains how different beans can interact using the event bus.
-
Context propagation in Quarkus Learn more about how you can pass contextual information with SmallRye Context Propagation. -
Duplicated context, context locals, asynchronous processing and propagation When using a traditional, blocking, and synchronous framework, processing of each request is performed in a dedicated thread.
-
Kubernetes extension This guide covers how to deploy a native application on Kubernetes. -
Deploying Quarkus applications to OpenShift This guide describes the deployment of Quarkus applications to OpenShift. -
Deploying Quarkus applications to OpenShift in a single step This guide describes how to build and deploy a Quarkus application to OpenShift in a single step. -
Using S2I to deploy Quarkus applications to OpenShift This guide describes how to build and deploy a Quarkus application on OpenShift by using Source-to-Image (S2I). -
Deploying Quarkus Java applications to OpenShift by using a Docker build strategy This guide describes how to build and deploy a Quarkus application on OpenShift by using the Docker build strategy. -
Deploying Quarkus applications compiled to native executables This guide describes how to deploy a Quarkus application to OpenShift compiled to native executables. -
Deploying to Microsoft Azure Cloud Deploy a Quarkus application to the Microsoft Azure cloud platform. -
Deploying to Google Cloud Platform (GCP) This guide explains how to deploy a Quarkus application to Google Cloud. -
Deploying to Heroku Deploy your Quarkus applications on Heroku. -
Automate Quarkus deployment with Ansible Build and deploy your Quarkus App using Ansible
-
AWS Lambda This guide explains how you can deploy Quarkus-based AWS Lambdas. -
AWS Lambda with Quarkus REST, Undertow, or Reactive Routes This guide explains how you can deploy Vert.x Web, Servlet, or RESTEasy microservices as an AWS Lambda. -
AWS Lambda SnapStart configuration This document explains how to optimize your AWS Lambda application for SnapStart -
Google Cloud Functions (serverless) This guide explains how you can deploy Quarkus-based Google Cloud Functions. -
Google Cloud Functions (Serverless) with Quarkus REST, Undertow, or Reactive Routes This guide explains how you can deploy Vert.x Web, Servlet, or RESTEasy microservices as a Google Cloud Function. -
Azure Functions Integrate Quarkus with the Microsoft Azure functions that you have written. -
Azure Functions with Quarkus REST, Undertow, or Reactive Routes Deploy Vert.x Web, Servlet, or RESTEasy microservices as a Microsoft Azure Function. -
Funqy This guide explains basics of the Funqy framework, a simple portable cross-provider cloud function API. -
Funqy HTTP binding (standalone) This guide explains Funqy's HTTP binding. -
Funqy AWS Lambda binding This guide explains Funqy's AWS Lambda binding. -
Funqy HTTP Binding with AWS Lambda This guide explains Funqy's AWS Lambda HTTP binding. -
Funqy Google Cloud Functions This guide explains Funqy's Google Cloud Platform Functions binding. -
Funqy HTTP binding with Google Cloud Functions This guide explains Funqy's Google Cloud Platform Functions HTTP binding. -
Funqy HTTP binding with Azure Functions Use Funqy HTTP binding with Microsoft Azure Functions to deploy your serverless Quarkus applications. -
Funqy Knative events binding This guide explains Funqy's Knative Events binding.
-
Kubernetes Client This guide demonstrates how to use the Fabric8 Kubernetes client to interact with your Kubernetes cluster. -
Kubernetes Config Use ConfigMaps as a configuration source for your Quarkus applications. -
Dev Services for Kubernetes Start a Kubernetes API server automatically in dev and test modes. -
Initialization tasks This reference guide explains how to configure initialization tasks
-
Getting started with SmallRye Stork The essence of distributed systems resides in the interaction between services. -
Using Stork with Kubernetes This guide explains how to use Stork with Kubernetes for service discovery and load balancing. -
Stork reference guide This guide is the companion to the Stork Getting Started Guide. -
Automatic service registration with SmallRye Stork for Quarkus This guide explains how to enable automatic registration and deregistration of a Quarkus application using SmallRye Stork and Consul, with minimal or no configuration. -
Implementing a custom Stork service registrar This guide explains how to implement a custom service registrar for SmallRye Stork and use it to programmatically register service instances at startup.
-
Management interface reference Management interface configuration -
TLS registry reference TLS registry configuration and usage -
Using Proxy Registry This guide explains how to use the Proxy Registry in your Quarkus application.
-
SmallRye Health This guide demonstrates how your Quarkus application can utilize the SmallRye Health extension. -
Application info endpoint Expose build, git, Java, and OS information via the /q/info endpoint.
-
Logging configuration Read about the use of logging API in Quarkus, configuring logging output, and using logging adapters to unify the output from other logging APIs. -
Centralized log management (Graylog, Logstash, Fluentd) This guide explains how to centralize your logs with Graylog, Logstash or Fluentd. -
Using OpenTelemetry Logging This guide explains how your Quarkus application can utilize OpenTelemetry Logging to provide centralised logging for interactive web applications.
-
Micrometer Metrics Use Micrometer to collect metrics produced by Quarkus, its extensions, and your application. -
Collect metrics using Micrometer Create an application that uses the Micrometer metrics library to collect runtime, extension and application metrics and expose them as a Prometheus (OpenMetrics) endpoint. -
Observability in Quarkus An overview of the observability capabilities of Quarkus. -
Using OpenTelemetry This guide explains how your Quarkus application can utilize OpenTelemetry to provide observability for interactive web applications. -
Using OpenTelemetry Tracing This guide explains how your Quarkus application can utilize OpenTelemetry Tracing to provide distributed tracing for interactive web applications. -
Using OpenTelemetry Metrics This guide explains how your Quarkus application can utilize OpenTelemetry to provide metrics for interactive web applications. -
Micrometer and OpenTelemetry extension Guide to send Micrometer data to OpenTelemetry. -
Migrate from OpenTracing to OpenTelemetry tracing Migrate an application from OpenTracing to OpenTelemetry tracing in Quarkus 3.x. -
Using JDK Flight Recorder This guide explains how JDK Flight Recorder (JFR) can be extended to provide additional insight into your Quarkus application. -
Observability Dev Services Entry point for Observability DevServices -
Observability Dev Services with Grafana OTel LGTM Instructions on how to use Grafana Otel LGTM
-
SmallRye Fault Tolerance This guide demonstrates how your Quarkus application can utilize the SmallRye Fault Tolerance specification through the SmallRye Fault Tolerance extension. -
Load shedding reference guide Load shedding is the practice of detecting service overload and rejecting requests.
-
Writing JSON REST services JSON is now the lingua franca between microservices.
-
gRPC Entry point for everything gRPC. -
Getting started with gRPC This guide explains how to start using gRPC in your Quarkus application. -
Implementing a gRPC service This guide explains how to implement gRPC services in your Quarkus application. -
Consuming a gRPC service This guide explains how to consume gRPC services in your Quarkus application. -
Using gRPC CLI This page explains how to use gRPC CLI. -
gRPC reference guide Learn how to configure gRPC server and clients. -
gRPC code generation reference guide Learn how to configure gRPC code generation. -
Deploying your gRPC service in Kubernetes This guide explains how to deploy your gRPC services in Quarkus to Kubernetes. -
Quarkus virtual thread support for gRPC services This guide explains how to benefit from Java virtual threads when implementing a gRPC service. -
Using xDS gRPC This page explains how to enable xDS gRPC usage in your Quarkus application.
-
Command mode applications This reference guide explains how to develop command line applications with Quarkus. -
Command mode with Picocli Simplify command line applications creation with the Picocli extension. -
Command mode with Aesh Develop command line applications with the Aesh extension. -
Scripting with Quarkus Easy Quarkus-based scripting with jbang.
-
Sending emails using SMTP Learn more about how you can send email from a Quarkus application with our reactive email client. -
Mailer reference guide This reference guide explains in more details the configuration and usage of the Quarkus Mailer.
-
Scheduling periodic tasks Modern applications often need to run specific tasks periodically. -
Scheduler reference guide Learn more about the Scheduler extension. -
Scheduling periodic tasks with Quartz You need clustering support for your scheduled tasks? This guide explains how to use the Quartz extension for that.
-
Qute templating engine Learn more about how you can use templating in your applications with the Qute template engine. -
Qute reference guide Learn everything you need to know about the Qute template engine.
-
Building Quarkus apps with Quarkus Command Line Interface (CLI) Use the Quarkus CLI to create, build, run, and manage extensions for Quarkus projects. -
Quarkus and Maven Develop and build your Quarkus application with Maven -
Quarkus Maven plugin The Quarkus Maven Plugin builds the Quarkus applications, and provides helpers to launch dev mode or build native executables. -
Quarkus and Gradle Develop and build your Quarkus application with Gradle -
Build analytics This guide presents what build analytics is and how to configure it. -
Update projects to the latest Quarkus version Learn how to upgrade your projects to the latest version of Quarkus
-
Quarkus extension for Spring DI API While you are encouraged to use CDI annotations for injection, Quarkus provides a compatibility layer for Spring dependency injection in the form of the spring-di extension. -
Quarkus extension for Spring Web API While you are encouraged to use Jakarta REST annotations for defining REST endpoints, Quarkus provides a compatibility layer for Spring Web in the form of the spring-web extension. -
Extension for Spring Data API While you are encouraged to use Hibernate ORM with Panache for your data layer, Quarkus provides a compatibility layer for Spring Data JPA in the form of the spring-data-jpa extension. -
Quarkus extension for Spring Transaction API While you are encouraged to use Jakarta @Transactional directly, Quarkus provides a compatibility layer for Spring @Transactional in the form of the spring-tx extension. -
Accessing application properties with Spring Boot properties API Use Spring Boot's @ConfigurationProperties in place of MicroProfile Config annotations -
Quarkus extension for Spring Security API While you are encouraged to use the Quarkus Security layer to secure your applications, Quarkus provides a compatibility layer for Spring Security in the form of the spring-security extension. -
Quarkus extension for Spring Cache API While you are encouraged to use the Cache extension for your application-level caching, Quarkus provides a compatibility layer for Spring Cache in the form of the spring-cache extension. -
Quarkus extension for Spring Scheduling API While you are encouraged to use the Scheduler or Quartz extensions to schedule tasks, Quarkus provides a compatibility layer for Spring Scheduled in the form of the spring-scheduled extension. -
Extension for Spring Data REST Spring Data REST simplifies the creation of CRUD applications based on our Spring Data compatibility layer. -
Reading properties from Spring Cloud Config Server Quarkus provides a compatibility layer for Spring Cloud Config in the form of the spring-cloud-config-client extension. -
Testing Spring-style applications in Quarkus Quarkus supports the @SpringBootTest annotation out of the box, letting Spring developers write tests in a familiar style while running on the Quarkus runtime.
-
Apache Camel on Quarkus This guide covers the systems integration with Apache Camel
-
Using Kotlin This guide explains how to use Kotlin.
-
Quarkus reactive architecture Learn more about Quarkus reactive architecture. -
Platform Learn more about what we call a Platform in the Quarkus world. -
Class loading reference Learn more about Quarkus class loading infrastructure. -
Quarkus modularity Quarkus modularity builds on JPMS to produce a complete and enhanced module graph for the application at build time. -
Modularity SPI reference Reference for the build items that Quarkus extensions use to participate in Quarkus modularity. -
How dev mode differs from a production application How dev mode differs from a production application -
Quarkus extension registry Learn more about the notion of extension registry and how you can use your own. -
Measuring performance This guide explains how to best measure the footprint of a Quarkus application.
-
Writing your own extension Quarkus extensions optimize your applications by pushing as much work as possible to the build operation. -
Building my first extension Learn step by step how to build a simple extension. -
Quarkus extension metadata Quarkus extensions are distributed as Maven JAR artifacts that application and other libraries may depend on. -
Extension capabilities How capabilities are implemented and used in Quarkus. -
CDI integration guide Learn how to integrate your extension with Quarkus' CDI container. -
Conditional extension dependencies Trigger the inclusion of additional extensions based on certain conditions. -
Build items Explore all the BuildItems you can consume/produce in your extensions. -
Dev UI Learn more about Dev UI -
Extension codestart Provide users with initial code for extensions when generating Quarkus applications on code.quarkus.io and all the Quarkus tooling. -
Writing a Dev Service Learn how to develop a Dev Service for your extension in order to replace an external service in development mode. -
Dev MCP Learn more about Dev MCP -
Agent MCP Learn more about the Quarkus Agent MCP server for AI coding agents -
Dev Assistant Learn more about the Dev Assistant -
A maturity matrix for Quarkus extensions Quarkus extensions can do a lot, or a little. -
Frequently asked questions about writing extensions
-
Contribute to Quarkus documentation Contribute to the documentation by using the recommended diataxis content types, steps, workflow, and style guidance to ensure the content successfully renders on the Quarkus website portal. -
Quarkus documentation content types Quarkus documentation is structured into four distinct content types: concepts, how-tos, tutorials, and references. -
Quarkus style and content guidelines Guidelines are provided to help you to contribute clear and consistent content that is also sourced in the required diataxis structure and composition of Quarkus documentation. -
Creating a tutorial Create a new tutorial that guides users through creating, running, and testing a Quarkus application that uses annotations from an imaginary extension.
-
Defining and executing business rules with Drools Drools is the most used rule engine implementation in the Java ecosystem.