Quarkus - Extensions

Think of Quarkus extensions as your project dependencies. Extensions configure, boot and integrate a framework or technology into your Quarkus application. They also do all of the heavy lifting of providing the right information to GraalVM for your application to compile natively.

Adding an extension is as easy as adding a dependency or use Quarkus tooling.

$ mvn quarkus:list-extensions
$ mvn quarkus:add-extension -Dextensions="groupId:artifactId"

# Or

$ gradle list-extensions
# and add the dependency in your dependencies section
      

Explore the wide breadth of technologies Quarkus applications can be made with.

Core

  • Configuration

    Included: MicroProfile Configuration via SmallRye

  • Logging

    Included: centralized log management for Quarkus

  • ArC

    Build time CDI dependency injection

    io.quarkus:quarkus-arc

Web

  • Netty

    Netty is a non-blocking I/O client-server framework. Used by Quarkus as foundation layer.

    io.quarkus:quarkus-netty

  • RESTEasy JAX-RS

    REST framework implementing JAX-RS and more

    io.quarkus:quarkus-resteasy

  • RESTEasy JSON-B

    JSON-B serialization support for RESTEasy

    io.quarkus:quarkus-resteasy-jsonb

  • RESTEasy Jackson

    Jackson serialization support for RESTEasy

    io.quarkus:quarkus-resteasy-jackson

  • SmallRye JWT

    Secure your applications with JSON Web Token

    io.quarkus:quarkus-smallrye-jwt

  • SmallRye OpenAPI

    Document your REST APIs with OpenAPI - comes with Swagger UI

    io.quarkus:quarkus-smallrye-openapi

  • REST Client

    Call REST services

    io.quarkus:quarkus-rest-client

  • Undertow Servlet

    Support for servlets

    io.quarkus:quarkus-undertow

  • Undertow WebSockets

    WebSocket support

    io.quarkus:quarkus-undertow-websockets

  • Hibernate Validator

    Validate data coming to your REST endpoints

    io.quarkus:quarkus-hibernate-validator

Data

  • Hibernate ORM

    Define your persistent model with Hibernate ORM and JPA

    io.quarkus:quarkus-hibernate-orm

  • Hibernate ORM with Panache

    Define your persistent model in Hibernate ORM with Panache

    io.quarkus:quarkus-hibernate-orm-panache

  • Hibernate Validator

    Validate your persistent model

    io.quarkus:quarkus-hibernate-validator

  • Hibernate Search + Elasticsearch

    Automatically index your Hibernate entities in Elasticsearch

    io.quarkus:quarkus-hibernate-search-elasticsearch

  • Flyway

    Handle your database schema migrations

    io.quarkus:quarkus-flyway

  • MongoDB with Panache

    Use an active record or repository pattern with MongoDB

    io.quarkus:quarkus-mongodb-panache

  • JDBC Driver - H2

    H2 database connector

    io.quarkus:quarkus-jdbc-h2

  • JDBC Driver - MariaDB

    MariaDB database connector

    io.quarkus:quarkus-jdbc-mariadb

  • JDBC Driver - MySQL

    MySQL database connector

    io.quarkus:quarkus-jdbc-mysql

  • JDBC Driver - PostgreSQL

    PostgreSQL database connector

    io.quarkus:quarkus-jdbc-postgresql

  • JDBC Driver - Microsoft SQL Server

    Microsoft SQL Server database connector

    io.quarkus:quarkus-jdbc-mssql

  • JDBC Driver - Derby

    Derby database connector

    io.quarkus:quarkus-jdbc-derby

  • Infinispan Client

    Connect to the Infinispan data grid for distributed caching

    io.quarkus:quarkus-infinispan-client

  • Infinispan Embedded

    Run an embedded Infinispan data grid server for distributed caching

    io.quarkus:quarkus-infinispan-embedded

  • Agroal - Database connection pool

    Pool your database connections (included in Hibernate ORM)

    io.quarkus:quarkus-agroal

  • Reactive MySQL client

    A reactive client for the MySQL database

    io.quarkus:quarkus-reactive-mysql-client

  • Reactive PostgreSQL client

    A reactive client for the PostgreSQL database

    io.quarkus:quarkus-reactive-pg-client

  • MongoDB client

    An imperative and reactive client for MongoDB

    io.quarkus:quarkus-mongodb-client

  • Neo4j client

    A client for the Neo4j graph datastore

    io.quarkus:quarkus-neo4j

  • Amazon DynamoDB client

    A client for the Amazon DynamoDB datastore

    io.quarkus:quarkus-amazon-dynamodb

  • Narayana JTA - Transaction manager

    JTA transaction support (included in Hibernate ORM)

    io.quarkus:quarkus-narayana-jta

  • Narayana STM - Software Transactional Memory

    Software Transactional Memory (stm) support

    io.quarkus:quarkus-narayana-stm

Messaging

  • SmallRye Reactive Messaging

    Asynchronous messaging for Reactive Streams

    io.quarkus:quarkus-smallrye-reactive-messaging

  • SmallRye Reactive Messaging - Kafka Connector

    Kafka reactive messaging connector

    io.quarkus:quarkus-smallrye-reactive-messaging-kafka

  • SmallRye Reactive Messaging - AMQP Connector

    AMQP reactive messaging connector

    io.quarkus:quarkus-smallrye-reactive-messaging-amqp

  • SmallRye Reactive Messaging - MQTT Connector

    MQTT reactive messaging connector

    io.quarkus:quarkus-smallrye-reactive-messaging-mqtt

  • Apache Kafka Client

    A client for Apache Kafka

    io.quarkus:quarkus-kafka-client

  • Apache Kafka Streams

    Implement stream processing applications based on Apache Kafka

    io.quarkus:quarkus-kafka-streams

  • Artemis Core

    Use ActiveMQ Artemis as message broker

    io.quarkus:quarkus-artemis-core

  • Artemis JMS

    Use ActiveMQ Artemis as a JMS implementation

    io.quarkus:quarkus-artemis-jms

Reactive

  • Eclipse Vert.x

    Reactive application toolkit

    io.quarkus:quarkus-vertx

  • SmallRye Reactive Streams Operators

    Operators for Reactive Streams programming

    io.quarkus:quarkus-smallrye-reactive-streams-operators

  • SmallRye Reactive Type Converters

    Converters for reactive types from various reactive programming libraries

    io.quarkus:quarkus-smallrye-reactive-type-converters

  • SmallRye Context Propagation

    SmallRye Context Propagation

    io.quarkus:quarkus-smallrye-context-propagation

  • Reactive PostgreSQL client

    A reactive client for the PostgreSQL database

    io.quarkus:quarkus-reactive-pg-client

Business Automation

  • Kogito

    Add business automation capabilities with Kogito

    io.quarkus:quarkus-kogito

Cloud

  • Kubernetes

    Generate Kubernetes resources from annotations

    io.quarkus:quarkus-kubernetes

  • Kubernetes Client

    Interact with Kubernetes and develop Kubernetes Operators

    io.quarkus:quarkus-kubernetes-client

  • AWS Lambda

    AWS Lambda support

    io.quarkus:quarkus-amazon-lambda

  • SmallRye Fault Tolerance

    Define fault-tolerant services

    io.quarkus:quarkus-smallrye-fault-tolerance

  • SmallRye Health

    Monitor service health

    io.quarkus:quarkus-smallrye-health

Observability

  • SmallRye Metrics

    Extract metrics out of your services

    io.quarkus:quarkus-smallrye-metrics

  • SmallRye OpenTracing

    Trace your services with Jaeger

    io.quarkus:quarkus-smallrye-opentracing

Security

  • OpenID Connect

    Secure your applications with OpenID Connect and Keycloak

    io.quarkus:quarkus-oidc

  • Vault

    Store your credentials securely in HashiCorp Vault

    io.quarkus:quarkus-vault

  • Elytron Security

    Secure your services

    io.quarkus:quarkus-elytron-security

  • SmallRye JWT

    Secure your applications with JSON Web Token

    io.quarkus:quarkus-smallrye-jwt

  • Elytron Security OAuth 2.0

    Secure your applications with OAuth2 opaque tokens

    io.quarkus:quarkus-elytron-security-oauth2

  • Elytron Security JDBC Realm

    Secure your applications with username/password stored in a database

    io.quarkus:quarkus-elytron-security-jdbc

Serialization

  • JSON-B

    JSON Binding support

    io.quarkus:quarkus-jsonb

  • Jackson

    Jackson Databind support

    io.quarkus:quarkus-jackson

  • JSON-P

    JSON Processing support

    io.quarkus:quarkus-jsonp

  • RESTEasy JSON-B

    JSON-B serialization support for RESTEasy

    io.quarkus:quarkus-resteasy-jsonb

  • RESTEasy Jackson

    Jackson serialization support for RESTEasy

    io.quarkus:quarkus-resteasy-jackson

  • JAXB

    XML serialization support

    io.quarkus:quarkus-jaxb

Miscellaneous

  • Mailer

    Send emails

    io.quarkus:quarkus-mailer

  • Scheduler - tasks

    Schedule jobs and tasks

    io.quarkus:quarkus-scheduler

  • Apache Tika

    Extract data from your documents with Apache Tika

    io.quarkus:quarkus-tika

  • JGit

    Access your Git repositories

    io.quarkus:quarkus-jgit

Compatibility

  • Quarkus Extension for Spring DI API

    Define your dependency injection with Spring DI

    io.quarkus:quarkus-spring-di

  • Quarkus Extension for Spring Web API

    Use Spring Web annotations to create your REST services

    io.quarkus:quarkus-spring-web

  • Quarkus Extension for Spring Data JPA API

    Use Spring Data JPA annotations to create your data access layer

    io.quarkus:quarkus-spring-data-jpa

Alternative languages

  • Kotlin

    Write your services in Kotlin

    io.quarkus:quarkus-kotlin

  • Scala

    Write your services in Scala

    io.quarkus:quarkus-scala