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 breath 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 serialization support for RESTEasy

    io.quarkus:quarkus-resteasy-jsonb

  • 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

  • SmallRye REST Client

    Call REST services

    io.quarkus:quarkus-smallrye-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

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

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

Cloud

  • Kubernetes

    Generate Kubernetes resources from annotations

    io.quarkus:quarkus-kubernetes

  • 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

Integration

  • Camel Core

    Camel integration

    io.quarkus:quarkus-camel-core

  • Camel Infinispan

    Camel connector for Infinispan

    io.quarkus:quarkus-camel-infinispan

  • Camel Netty4 HTTP

    Camel support for Netty

    io.quarkus:quarkus-camel-netty4-http

  • Camel Salesforce

    Camel Salesforce connector

    io.quarkus:quarkus-camel-salesforce

Serialization

  • JSON-B

    JSON Binding support

    io.quarkus:quarkus-jsonb

  • JSON-P

    JSON Processing support

    io.quarkus:quarkus-jsonp

  • RESTEasy JSON-B

    JSON serialization support for RESTEasy

    io.quarkus:quarkus-resteasy-jsonb

  • JAXB

    XML serialization support

    io.quarkus:quarkus-jaxb

Miscellaneous

  • Scheduler - tasks

    Schedule jobs and tasks

    io.quarkus:quarkus-scheduler

Migration

  • Spring DI compatibility layer

    Define your dependency injection with Spring DI

    io.quarkus:quarkus-spring-di

Alternative languages

  • Kotlin

    Write your services in Kotlin

    io.quarkus:quarkus-kotlin