This repository contains a set of Quickstarts for the Quarkus framework. Each of them have a Getting started guide.
To compile and run these demos you will need:
- JDK 8 or 11+
- GraalVM
See the Building a Native Executable guide for help setting up your environment.
These quickstart by default currently uses the Quarkus core BOM.
If you want to use an alternative BOM when building the quickstart you can override the quarkus.platform.*
properties. The following example shows how to set quarkus.platform.artifact-id
to use the universe-bom.
mvn -Dquarkus.platform.artifact-id=quarkus-universe-bom clean install
See CONTRIBUTING for how to build these examples.
-
Getting Started: Application creation, Rest endpoint, Dependency Injection, Test, Packaging
-
Getting Started - Reactive: Getting started with Reactive and Quarkus
-
Getting Started - Async: Illustrate how to use
Uni
to handle asynchronous actions -
Getting Started - Knative: Deployment of the Knative service to Kubernetes and/or OpenShift
-
Getting Started - Testing: How to test your application
-
Application Configuration: How to configure your application
-
Startup and Shutdown actions: Explains how to execute code when the application starts and stops
-
Getting Started - Reactive CRUD: Reactive REST API with a (reactive) database backend
-
AMQP: How to interact with AMQP using MicroProfile reactive messaging
-
Amazon DynamoDB: How to connect to an Amazon DynamoDB datastore
-
Amazon KMS: How to connect to an Amazon KMS (Key Management Service)
-
Amazon SES: How to connect to an Amazon SES (Simple Email Service)
-
Amazon S3: How to connect to an Amazon S3 cloud storage
-
Amazon SNS: How to connect to an Amazon SNS (Simple Messaging Service)
-
Amazon SQS: How to connect to an Amazon SQS (Simple Queue Service)
-
Amazon SSM: How to connect to Amazon SSM (Simple Systems Manager)
-
AWT Graphics, ImageIO: How to create a service that watermarks images and draws text
-
Hibernate Reactive Panache and RESTEasy Reactive: Exposing a CRUD service over REST using Hibernate Reactive and Panache to connect to a PostgreSQL database
-
Hibernate Reactive and RESTEasy: Exposing a CRUD service over REST using Hibernate Reactive to connect to a PostgreSQL database
-
Hibernate Reactive and Vert.x Web: Exposing a CRUD service with Reactive Routes using Hibernate Reactive to connect to a PostgreSQL database
-
Hibernate ORM and RESTEasy: Exposing a CRUD service over REST using Hibernate ORM to connect to a PostgreSQL database
-
Hibernate ORM with Panache and RESTEasy: Exposing a CRUD service over REST using Panache to connect to a PostgreSQL database
-
Hibernate ORM Multitenancy: Multitenant CRUD service over REST using Hibernate ORM to connect to a PostgreSQL database (schema or database approach)
-
Hibernate Search + Elasticsearch: Index your Hibernate entities in Elasticsearch to get full text search
-
Infinispan Client: How to use Infinispan Client. Covers creating caches and simple get/put
-
Artemis JMS: How to use the Artemis JMS extension
-
Kafka: Use MicroProfile Reactive Messaging to interact with Apache Kafka
-
Kafka and Hibernate with Panache: Shows how to combine Kafka and (classic) Hibernate with Panache
-
Kafka and Hibernate Reactive with Panache: Shows how to combine Kafka and Hibernate Reactive with Panache
-
Kafka Streams: Use the Apache Kafka Streams API to implement stream processing applications based on Apache Kafka
-
Bare Kafka: How to use the Apache Kafka and Kafka Vert.x clients in Quarkus
-
Kogito: How to use Kogito for business process automation with Drools and jBPM
-
Kogito: How to use Kogito for decision automation with Drools DMN Engine
-
Liquibase: How to use Liquibase to manage you schema migrations
-
Liquibase MongoDB: How to use Liquibase MongoDB extension to manage you MongoDB migrations
-
Micrometer: How to use Micrometer to gather metrics
-
MicroProfile Fault Tolerance: How to use MicroProfile Fault Tolerance
-
MicroProfile GraphQL: How to use MicroProfile GraphQL
-
MicroProfile GraphQL Client: How to use MicroProfile GraphQL Client
-
MicroProfile Health: How to use MicroProfile Health
-
MicroProfile Metrics: How to use MicroProfile Metrics
-
MongoDB: How to connect to a MongoDB datastore
-
MongoDB with Panache: Simplify your MongoDB applications with Panache
-
MicroProfile Messaging MQTT: How to interact with MQTT using MicroProfile reactive messaging
-
Neo4j: How to connect to a Neo4j graph datastore
-
OpenAPI and Swagger UI: Use OpenAPI and Swagger UI to expose your REST API and test your REST services
-
OpenTelemetry: How to use OpenTelemetry to monitor application performance
-
OpenTracing and Jaeger: How to use MicroProfile OpenTracing and Jaeger to monitor application performances
-
OptaPlanner: How to use OptaPlanner to optimize business resources
-
Quartz: How to schedule periodic clustered jobs
-
Qute: How to use the Qute templating engine in Quarkus
-
RabbitMQ: How to interact with RabbitMQ using MicroProfile reactive messaging
-
Reactive Routes: How to use Reactive Routes in Quarkus
-
REST Client Reactive: How to use MicroProfile's REST Client with Reactive client
-
REST Client: How to use MicroProfile's REST Client
-
REST Client Multipart: Handle multipart with MicroProfile's REST Client
-
JSON REST services: How to write JSON REST services
-
Scheduling periodic tasks: How to schedule periodic jobs
-
Security with Users stored in a Database (JDBC): Store your users in a database and secure your application with JDBC
-
Security with Users stored in a Database (JPA): Store your users in a database and secure your application with JPA
-
Security with MicroProfile JWT: How to use MicroProfile JWT RBAC
-
Security with OAuth2 opaque tokens: How to use our security layer with OAuth2 opaque tokens
-
Security with OpenId Connect: How to use OpenId Connect and Keycloak
-
Supporting Multi-Tenancy in OpenID Connect Applications: How to use OpenId Connect and Keycloak
-
Spring DI compatibility layer: How to use our Spring Dependency Injection compatibility layer
-
Spring Data extension: How to use the Quarkus extension for the Spring Data API
-
Spring Web extension: How to use the Quarkus extension for the Spring Web API
-
Spring Security extension: How to use the Quarkus extension for the Spring Security API
-
Spring Boot Properties extension: How to use the Quarkus extension for the Spring Boot properties
-
Spring Scheduled extension: How to use the Quarkus extension for the Spring Scheduled annotation
-
Spring Data REST extension: How to use the Quarkus extension for the Spring Data REST
-
Using STM: How to use the Narayana Software Transactional Memory extension
-
Apache Tika: Extract metadata and content from your documents
-
Validation with Hibernate Validator: How to use Hibernate Validator/Bean Validation in your REST services
-
Using Vert.x: How to use the Vert.x extension
-
Using Web Sockets: Demonstrate how to use web sockets and serve static assets
-
Context Propagation: Demonstrate how to use context propagation in your reactive applications
-
Funqy HTTP: Funqy functions as HTTP/REST endpoints
-
Funqy AWS Lambda: Funqy functions as deployed to AWS Lambda
-
Funqy AWS Lambda HTTP: Funqy functions as deployed to AWS Lambda invokable via HTTP/REST
-
Funqy Azure Functions HTTP: Funqy functions as deployed to Azure Functions invokable via HTTP/REST
-
Funqy Knative Events: Funqy functions integration with Knative Events
-
Funqy Google Cloud Functions: Funqy functions as deployed to Google Cloud Functions
-
gRPC Plain text Quickstart: How to use Quarkus gRPC extension with plain text communication
-
gRPC TLS Quickstart: How to use Quarkus gRPC extension with TLS communication
-
Mailer Quickstart: How to use the Quarkus mailer
-
Using Vert.x Redis Client: Demonstrate how to use Vert.x Redis Client
-
Google Cloud Functions: How to create Google Cloud Functions
-
Google Cloud Functions HTTP: How to bind our HTTP layer (JAX-RS, Servlet or Reactive Route) to Google Cloud Functions
-
JTA: How use JTA transactions with HTTP/REST
-
Reactive Messaging with HTTP: How to consume and produce HTTP messages with Reactive Messaging
-
Reactive Messaging with Web Sockets: How to consume and produce messages via Web Sockets with Reactive Messaging
There is documentation published at https://quarkus.io (docs' sources are here).