= Apache Camel extensions for Quarkus

image:https://img.shields.io/maven-central/v/org.apache.camel.quarkus/camel-quarkus-bom.svg["Maven Central", link="http://search.maven.org/#search%7Cga%7C1%7Corg.apache.camel.quarkus"]
image:https://img.shields.io/github/license/openshift/origin.svg?maxAge=2592000["Licensed under Apache License version 2.0", link="https://www.apache.org/licenses/LICENSE-2.0"]
image:https://badges.gitter.im/apache/camel-quarkus.svg["Chat on Gitter", link="https://gitter.im/apache/camel-quarkus"]


== What is this

This project hosts the efforts to port and package the 280+ Camel components as Quarkus extensions.

http://camel.apache.org/[Apache Camel] is the Swiss knife of integrating heterogeneous systems with more than a decade
of history and a lively community of users and developers.

https://quarkus.io/[Quarkus] is a Java platform offering fast boot times and low memory footprint. It targets both stock
JVMs (OpenJDK in the first place) and https://www.graalvm.org/[GraalVM].

https://quarkus.io/extensions/[Quarkus extensions] are units of Quarkus distribution. They configure, boot and integrate
a technology (in our case Camel components) into your Quarkus application. You will typically use them as dependencies
in your project.


== How to build

See the contributor guide xref:docs/modules/ROOT/pages/contributor-guide.adoc[in the source tree] or on the
https://camel.apache.org/camel-quarkus/latest/contributor-guide.html[Apache Camel website].


== Licensing

This software is licensed under the terms you may find in the file named `LICENSE.txt` in this directory.
