This repository hosts Quarkus extensions for a selection of popular Azure Services and a few common extensions that are used by the Azure services extensions or can be used independently. All extensions support native executable build.
The official documentation of extensions for Azure services is in Quarkiverse at Quarkus Azure Services Extensions. Each extension is functionally independent of the others, but they can be used together.
Here's the current selection of Quarkus Azure Services:
- Quarkus Azure App Configuration Extension: Azure App Configuration is a fast, scalable parameter storage for app configuration.
- Quarkus Azure Cosmos DB Extension: Azure Cosmos DB is a fully managed NoSQL, relational, and vector database.
- Quarkus Azure Key Vault Extension: Azure Key Vault is a cloud service for securely storing and accessing secrets.
- Quarkus Azure Blob Storage Extension: Azure Blob Storage is a massively scalable and secure object storage for cloud-native workloads, archives, data lakes, high-performance computing, and machine learning.
- Quarkus Azure Event Hubs Extension: Azure Event Hubs is a big data streaming platform and event ingestion service. It can receive and process millions of events per second.
- Quarkus Azure Service Bus Extension: Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics.
- Quarkus Opentelemetry Exporter for Microsoft Azure enables Azure Application Insights telemetry for Quarkus native applications
Besides extensions for specific Azure services, there are some common extensions that are used by the Azure services extensions or can be used independently as well:
- Azure Identity Extension: This extension provides a way to authenticate with Azure services using the azure-identity library.
- Azure Identity JDBC Extension: This extension provides a way to authenticate Azure Database for PostgreSQL/MySQL Flexible server with Microsoft Entra authentication using the Azure identity authentication extensions plugin library for Java.
- Azure Core HTTP Vert.x: This extension provides the Vert.x HTTP client plugin using the azure-core-http-vertx library.
- Azure Core Extension: This extension provides core types for Azure Java clients using the azure-core library.
- Jackson Dataformat XML Extension: This extension provides a data format extension for Jackson to offer alternative support for serializing POJOs as XML and deserializing XML as pojos using the jackson-dataformat-xml library.
Extension example applications can be found inside the integration-tests folder:
- Azure App Configuration sample: retrieve the configuration stored in Azure App Configuration.
- Azure Cosmos DB sample: implement CRUD operations in Azure Cosmos DB.
- Azure Key Vault sample:
- Create a secret via SecretClient and SecretAsyncClient in Azure Key Vault.
- Load a secret from Azure Key Vault as property using
ConfigProperty
.
- Azure Blob Storage sample: upload and download files to/from Azure Blob Storage.
- Azure Event Hubs sample: send/receive data to/from Azure Event Hubs.
- Azure Service Bus sample: send/receive data to/from Azure Service Bus.
- Multiple Azure services sample: use multiple extensions for Azure services, for example, storing the connection string of Azure Blob Storage as a secret in Azure Key Vault, retrieving it as a configuration property, and then using it to authenticate to Azure Blob Storage.
The latest version of the extensions is recommended to be used, which contains the latest features and bug fixes. However, if you are working on an specific version of Quarkus, you can use the compatibility matrix below to find the right version of the extensions.
Show/hide the compatibility matrix
The following matrix shows the compatibility of the extensions with Quarkus versions and Java versions. The Quarkus version is the one used to build the extension, and the Java version is the one used to build the extension and run the tests.
Quarkus Azure services Version | Quarkus Version | Java Version |
---|---|---|
1.1.9 | 3.25.3 | Java 17 |
1.1.8 | 3.25.0 | Java 17 |
1.1.7 | 3.24.4 | Java 17 |
1.1.6 | 3.24.1 | Java 17 |
1.1.5 | 3.23.2 | Java 17 |
1.1.4 | 3.21.3 | Java 17 |
1.1.3 | 3.21.0 | Java 17 |
1.1.2 | 3.19.0 | Java 17 |
1.1.1 | 3.17.7 | Java 17 |
1.1.0 | 3.17.6 | Java 17 |
1.0.9 | 3.17.5 | Java 17 |
1.0.8 | 3.17.5 | Java 17 |
1.0.7 | 3.14.0 | Java 11 |
1.0.6 | 3.13.0 | Java 11 |
1.0.5 | 3.12.2 | Java 11 |
1.0.4 | 3.10.0 | Java 11 |
1.0.3 | 3.10.0 | Java 11 |
1.0.2 | 3.6.5 | Java 11 |
1.0.1 | 3.2.3.Final | Java 11 |
1.0.0 | 3.2.0.Final | Java 11 |
Follow this wiki to release a new version of the extensions. You can reference the following PRs as examples:
- Release a new version: quarkiverse#379.
- Register new extensions in catalog: quarkusio/quarkus-extension-catalog#64. See Publish your extension in registry.quarkus.io for more information.
Contributions are always welcome, but better create an issue to discuss them prior to any contributions.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!