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

  • JDBC Driver - H2

    H2 database connector

    io.quarkus:quarkus-jdbc-h2

  • JDBC Driver - MariaDB

    MariaDB database connector

    io.quarkus:quarkus-jdbc-mariadb

  • 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

  • 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

  • Infinispan Client

    Connect to the Infinispan data grid for distributed caching

    io.quarkus:quarkus-infinispan-client

  • Agroal - Database connection pool

    Pool your database connections (included in Hibernate ORM)

    io.quarkus:quarkus-agroal

  • Narayana JTA - Transaction manager

    JTA transaction support (included in Hibernate ORM)

    io.quarkus:quarkus-narayana-jta

  • 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

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

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

  • Elytron Security

    Secure your services

    io.quarkus:quarkus-elytron-security

  • SmallRye JWT

    Secure your applications with JSON Web Token

    io.quarkus:quarkus-smallrye-jwt

  • Keycloak

    Secure your applications with Keycloak

    io.quarkus:quarkus-keycloak

  • Elytron Security OAuth 2.0

    Secure your applications with OAuth2 opaque tokens

    io.quarkus:quarkus-elytron-security-oauth2

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

Migration

  • 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