[list-of-camel-quarkus-extensions]
= List of Apache Camel extensions for Quarkus

As of Camel Quarkus {camel-quarkus-last-release} Camel artifacts listed below are supported on Quarkus.

[TIP]
====
In case you are missing some Camel feature in the list:

* Upvote https://github.com/apache/camel-quarkus/issues[an existing issue] or create
  https://github.com/apache/camel-quarkus/issues/new[a new one] so that we can better prioritize our work.
* You may also want to try to add the extension yourself following our xref:contributor-guide.adoc[Contributor guide].
* You may try your luck using the given camel component on Quarkus directly (without an extension). Most probably it
  will work in the JVM mode and fail in the native mode. Do not hesitate to
  https://github.com/apache/camel-quarkus/issues[report] any issues you encounter.
====

== Camel Components

// components: START
Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Component | Since | Description

| xref:extensions/ahc.adoc[AHC] (camel-quarkus-ahc) +
`ahc:httpUri` | 1.0.0-M3 | To call external HTTP services using Async Http Client.

| link:https://camel.apache.org/components/latest/ahc-ws-component.html[AHC Websocket] (camel-quarkus-ahc-ws) +
`ahc-ws:httpUri` | 1.0.0-M3 | To exchange data with external Websocket servers using Async Http Client.

| link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
`aws-ec2:label` | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.

| link:https://camel.apache.org/components/latest/aws-ecs-component.html[AWS ECS] (camel-quarkus-aws-ecs) +
`aws-ecs:label` | 1.0.0-M1 | The aws-ecs is used for managing Amazon ECS

| link:https://camel.apache.org/components/latest/aws-eks-component.html[AWS EKS] (camel-quarkus-aws-eks) +
`aws-eks:label` | 0.2.0 | The aws-eks is used for managing Amazon EKS

| link:https://camel.apache.org/components/latest/aws-iam-component.html[AWS IAM] (camel-quarkus-aws-iam) +
`aws-iam:label` | 1.1.0 | The aws-iam is used for managing Amazon IAM

| link:https://camel.apache.org/components/latest/aws-kinesis-component.html[AWS Kinesis] (camel-quarkus-aws-kinesis) +
`aws-kinesis:streamName` | 1.0.0-M3 | The aws-kinesis component is for consuming and producing records from Amazon Kinesis Streams.

| link:https://camel.apache.org/components/latest/aws-kinesis-firehose-component.html[AWS Kinesis Firehose] (camel-quarkus-aws-kinesis) +
`aws-kinesis-firehose:streamName` | 1.0.0-M3 | The aws-kinesis-firehose component is used for producing Amazon's Kinesis Firehose streams.

| link:https://camel.apache.org/components/latest/aws-kms-component.html[AWS KMS] (camel-quarkus-aws-kms) +
`aws-kms:label` | 1.0.0-M1 | The aws-kms is used for managing Amazon KMS

| link:https://camel.apache.org/components/latest/aws-lambda-component.html[AWS Lambda] (camel-quarkus-aws-lambda) +
`aws-lambda:function` | 1.0.0-M3 | The aws-lambda is used for managing and invoking functions from Amazon Lambda.

| link:https://camel.apache.org/components/latest/aws-s3-component.html[AWS S3 Storage Service] (camel-quarkus-aws-s3) +
`aws-s3://bucketNameOrArn` | 0.2.0 | The aws-s3 component is used for storing and retrieving object from Amazon S3 Storage Service.

| link:https://camel.apache.org/components/latest/aws-sns-component.html[AWS Simple Notification System] (camel-quarkus-aws-sns) +
`aws-sns:topicNameOrArn` | 0.2.0 | The aws-sns component is used for sending messages to an Amazon Simple Notification Topic.

| link:https://camel.apache.org/components/latest/aws-sqs-component.html[AWS Simple Queue Service] (camel-quarkus-aws-sqs) +
`aws-sqs:queueNameOrArn` | 0.2.0 | The aws-sqs component is used for sending and receiving messages to Amazon's SQS service.

| link:https://camel.apache.org/components/latest/aws-translate-component.html[AWS Translate] (camel-quarkus-aws-translate) +
`aws-translate:label` | 1.0.0-M3 | The aws-kms is used for managing Amazon Translate

| link:https://camel.apache.org/components/latest/bean-component.html[Bean] (camel-quarkus-bean) +
`bean:beanName` | 0.2.0 | The bean component is for invoking Java beans from Camel.

| link:https://camel.apache.org/components/latest/bean-validator-component.html[Bean Validator] (camel-quarkus-bean-validator) +
`bean-validator:label` | 1.0.0-M1 | The Validator component performs bean validation of the message body using the Java Bean Validation API.

| link:https://camel.apache.org/components/latest/class-component.html[Class] (camel-quarkus-bean) +
`class:beanName` | 0.2.0 | The class component is for invoking Java classes (Java beans) from Camel.

| link:https://camel.apache.org/components/latest/consul-component.html[Consul] (camel-quarkus-consul) +
`consul:apiEndpoint` | 1.0.0-M3 | The camel consul component allows you to work with Consul, a distributed, highly available, datacenter-aware, service discovery and configuration system.

| link:https://camel.apache.org/components/latest/controlbus-component.html[Control Bus] (camel-quarkus-controlbus) +
`controlbus:command:language` | 0.4.0 | The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.

| link:https://camel.apache.org/components/latest/dataformat-component.html[Data Format] (camel-quarkus-dataformat) +
`dataformat:name:operation` | 0.4.0 | The dataformat component is used for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.

| link:https://camel.apache.org/components/latest/direct-component.html[Direct] (camel-quarkus-direct) +
`direct:name` | 0.2.0 | The direct component provides direct, synchronous call to another endpoint from the same CamelContext.

| xref:extensions/dozer.adoc[Dozer] (camel-quarkus-dozer) +
`dozer:name` | 1.0.0-M1 | The dozer component provides the ability to map between Java beans using the Dozer mapping library.

| link:https://camel.apache.org/components/latest/exec-component.html[Exec] (camel-quarkus-exec) +
`exec:executable` | 0.4.0 | The exec component can be used to execute OS system commands.

| xref:extensions/fhir.adoc[FHIR] (camel-quarkus-fhir) +
`fhir:apiName/methodName` | 0.3.0 | The fhir component is used for working with the FHIR protocol (health care).

| link:https://camel.apache.org/components/latest/file-component.html[File] (camel-quarkus-file) +
`file:directoryName` | 0.4.0 | The file component is used for reading or writing files.

| link:https://camel.apache.org/components/latest/ftp-component.html[FTP] (camel-quarkus-ftp) +
`ftp:host:port/directoryName` | 1.0.0-M1 | The \ftp component is used for uploading or downloading files from FTP servers.

| link:https://camel.apache.org/components/latest/ftps-component.html[FTPS] (camel-quarkus-ftp) +
`ftps:host:port/directoryName` | 1.0.0-M1 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.

| xref:extensions/http.adoc[HTTP] (camel-quarkus-http) +
`http:httpUri` | 1.0.0-M3 | For calling out to external HTTP servers using Apache HTTP Client 4.x.

| link:https://camel.apache.org/components/latest/infinispan-component.html[Infinispan] (camel-quarkus-infinispan) +
`infinispan:cacheName` | 0.2.0 | For reading/writing from/to Infinispan distributed key/value store and data grid.

| link:https://camel.apache.org/components/latest/jdbc-component.html[JDBC] (camel-quarkus-jdbc) +
`jdbc:dataSourceName` | 0.2.0 | The jdbc component enables you to access databases through JDBC, where SQL queries are sent in the message body.

| link:https://camel.apache.org/components/latest/kafka-component.html[Kafka] (camel-quarkus-kafka) +
`kafka:topic` | 1.0.0-M1 | The kafka component allows messages to be sent to (or consumed from) Apache Kafka brokers.

| link:https://camel.apache.org/components/latest/log-component.html[Log] (camel-quarkus-log) +
`log:loggerName` | 0.2.0 | The log component logs message exchanges to the underlying logging mechanism.

| link:https://camel.apache.org/components/latest/mail-component.html[Mail] (camel-quarkus-mail) +
`imap:host:port` | 0.2.0 | To send or receive emails using imap/pop3 or smtp protocols.

| xref:extensions/microprofile-metrics.adoc[MicroProfile Metrics] (camel-quarkus-microprofile-metrics) +
`microprofile-metrics:metricType:metricName` | 0.2.0 | Camel metrics exposed with Eclipse MicroProfile Metrics

| xref:extensions/mongodb.adoc[MongoDB] (camel-quarkus-mongodb) +
`mongodb:connectionBean` | 1.0.0-M1 | Component for working with documents stored in MongoDB database.

| xref:extensions/netty.adoc[Netty] (camel-quarkus-netty) +
`netty:protocol:host:port` | 0.4.0 | Socket level networking using TCP or UDP with the Netty 4.x library.

| xref:extensions/netty-http.adoc[Netty HTTP] (camel-quarkus-netty-http) +
`netty-http:protocol:host:port/path` | 0.2.0 | Netty HTTP server and client using the Netty 4.x library.

| link:https://camel.apache.org/components/latest/olingo4-component.html[Olingo4] (camel-quarkus-olingo4) +
`olingo4:apiName/methodName` | 1.2.0 | Communicates with OData 4.0 services using Apache Olingo OData API.

| link:https://camel.apache.org/components/latest/paho-component.html[Paho] (camel-quarkus-paho) +
`paho:topic` | 0.2.0 | Component for communicating with MQTT message brokers using Eclipse Paho MQTT Client.

| link:https://camel.apache.org/components/latest/pdf-component.html[PDF] (camel-quarkus-pdf) +
`pdf:operation` | 0.3.1 | The pdf components provides the ability to create, modify or extract content from PDF documents.

| xref:extensions/platform-http.adoc[Platform HTTP] (camel-quarkus-platform-http) +
`platform-http:path` | 0.3.0 | HTTP service leveraging existing runtime platform HTTP server

| link:https://camel.apache.org/components/latest/reactive-streams-component.html[Reactive Streams] (camel-quarkus-reactive-streams) +
`reactive-streams:stream` | 1.0.0-M3 | Reactive Camel using reactive streams

| link:https://camel.apache.org/components/latest/rest-component.html[REST] (camel-quarkus-rest) +
`rest:method:path:uriTemplate` | 0.2.0 | The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).

| link:https://camel.apache.org/components/latest/rest-api-component.html[REST API] (camel-quarkus-rest) +
`rest-api:path/contextIdPattern` | 0.2.0 | The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.

| link:https://camel.apache.org/components/latest/salesforce-component.html[Salesforce] (camel-quarkus-salesforce) +
`salesforce:operationName:topicName` | 0.2.0 | The salesforce component is used for integrating Camel with the massive Salesforce API.

| link:https://camel.apache.org/components/latest/scheduler-component.html[Scheduler] (camel-quarkus-scheduler) +
`scheduler:name` | 0.4.0 | The scheduler component is used for generating message exchanges when a scheduler fires.

| link:https://camel.apache.org/components/latest/seda-component.html[SEDA] (camel-quarkus-seda) +
`seda:name` | 1.0.0-M1 | The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.

| link:https://camel.apache.org/components/latest/servlet-component.html[Servlet] (camel-quarkus-servlet) +
`servlet:contextPath` | 0.2.0 | To use a HTTP Servlet as entry for Camel routes when running in a servlet container.

| link:https://camel.apache.org/components/latest/sftp-component.html[SFTP] (camel-quarkus-ftp) +
`sftp:host:port/directoryName` | 1.0.0-M1 | The \sftp (FTP over SSH) component is used for uploading or downloading files from SFTP servers.

| link:https://camel.apache.org/components/latest/sjms-component.html[Simple JMS] (camel-quarkus-sjms) +
`sjms:destinationType:destinationName` | 1.0.0-M1 | The sjms component (simple jms) allows messages to be sent to (or consumed from) a JMS Queue or Topic (uses JMS 1.x API).

| link:https://camel.apache.org/components/latest/sjms-batch-component.html[Simple JMS Batch] (camel-quarkus-sjms) +
`sjms-batch:destinationName` | 1.0.0-M1 | The sjms-batch component is a specialized for highly performant, transactional batch consumption from a JMS queue.

| link:https://camel.apache.org/components/latest/sjms2-component.html[Simple JMS2] (camel-quarkus-sjms2) +
`sjms2:destinationType:destinationName` | 1.0.0-M1 | The sjms2 component (simple jms) allows messages to be sent to (or consumed from) a JMS Queue or Topic (uses JMS 2.x API).

| link:https://camel.apache.org/components/latest/slack-component.html[Slack] (camel-quarkus-slack) +
`slack:channel` | 0.3.0 | The slack component allows you to send messages to Slack.

| xref:extensions/sql.adoc[SQL] (camel-quarkus-sql) +
`sql:query` | 1.0.0-M2 | The sql component allows you to work with databases using JDBC SQL queries.

| xref:extensions/sql.adoc[SQL Stored Procedure] (camel-quarkus-sql) +
`sql-stored:template` | 1.0.0-M2 | The sql component allows you to work with databases using JDBC Stored Procedure queries.

| xref:extensions/stream.adoc[Stream] (camel-quarkus-stream) +
`stream:kind` | 1.2.0 | The stream: component provides access to the system-in, system-out and system-err streams as well as allowing streaming of file.

| link:https://camel.apache.org/components/latest/timer-component.html[Timer] (camel-quarkus-timer) +
`timer:timerName` | 0.2.0 | The timer component is used for generating message exchanges when a timer fires.

| link:https://camel.apache.org/components/latest/twitter-directmessage-component.html[Twitter Direct Message] (camel-quarkus-twitter) +
`twitter-directmessage:user` | 0.2.0 | The Twitter Direct Message Component consumes/produces user's direct messages.

| link:https://camel.apache.org/components/latest/twitter-search-component.html[Twitter Search] (camel-quarkus-twitter) +
`twitter-search:keywords` | 0.2.0 | The Twitter Search component consumes search results.

| link:https://camel.apache.org/components/latest/twitter-timeline-component.html[Twitter Timeline] (camel-quarkus-twitter) +
`twitter-timeline:timelineType` | 0.2.0 | The Twitter Timeline component consumes twitter timeline or update the status of specific user.

| link:https://camel.apache.org/components/latest/validator-component.html[Validator] (camel-quarkus-validator) +
`validator:resourceUri` | 0.4.0 | Validates the payload of a message using XML Schema and JAXP Validation.

| link:https://camel.apache.org/components/latest/vm-component.html[VM] (camel-quarkus-vm) +
`vm:name` | 0.3.0 | The vm component provides asynchronous call to another endpoint from the same CamelContext.

| xref:extensions/xslt.adoc[XSLT] (camel-quarkus-xslt) +
`xslt:resourceUri` | 0.4.0 | Transforms the message using a XSLT template.

|===
// components: END

== Camel Data Formats

// dataformats: START
Number of Camel data formats: 13 in 10 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Data Format | Since | Description

| link:https://camel.apache.org/components/latest/base64-dataformat.html[Base64] (camel-quarkus-base64) | 1.0.0-M1 | The Base64 data format is used for base64 encoding and decoding.

| link:https://camel.apache.org/components/latest/bindy-dataformat.html[Bindy CSV] (camel-quarkus-bindy) | 1.0.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| link:https://camel.apache.org/components/latest/bindy-dataformat.html[Bindy Fixed Length] (camel-quarkus-bindy) | 1.0.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| link:https://camel.apache.org/components/latest/bindy-dataformat.html[Bindy Key Value Pair] (camel-quarkus-bindy) | 1.0.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| link:https://camel.apache.org/components/latest/csv-dataformat.html[CSV] (camel-quarkus-csv) | 0.2.0 | The CSV data format is used for handling CSV payloads.

| xref:extensions/fhir.adoc[FHIR JSon] (camel-quarkus-fhir) | 0.3.0 | The FHIR JSon data format is used to marshall/unmarshall to/from FHIR objects to/from JSON.

| xref:extensions/fhir.adoc[FHIR XML] (camel-quarkus-fhir) | 0.3.0 | The FHIR XML data format is used to marshall/unmarshall from/to FHIR objects to/from XML.

| link:https://camel.apache.org/components/latest/json-jackson-dataformat.html[JSon Jackson] (camel-quarkus-jackson) | 0.3.0 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| link:https://camel.apache.org/components/latest/mime-multipart-dataformat.html[MIME Multipart] (camel-quarkus-mail) | 0.2.0 | The MIME Multipart data format is used for marshalling Camel messages with attachments into MIME-Multipart message, and vise-versa.

| link:https://camel.apache.org/components/latest/tarfile-dataformat.html[Tar File] (camel-quarkus-tarfile) | 0.3.0 | The Tar File data format is a message compression and de-compression format of tar files.

| link:https://camel.apache.org/components/latest/tidyMarkup-dataformat.html[TidyMarkup] (camel-quarkus-tagsoup) | 1.0.0-M1 | TidyMarkup data format is used for parsing HTML and return it as pretty well-formed HTML.

| link:https://camel.apache.org/components/latest/yaml-snakeyaml-dataformat.html[YAML SnakeYAML] (camel-quarkus-snakeyaml) | 0.4.0 | YAML is a data format to marshal and unmarshal Java objects to and from YAML.

| link:https://camel.apache.org/components/latest/zipfile-dataformat.html[Zip File] (camel-quarkus-zipfile) | 0.2.0 | The Zip File data format is a message compression and de-compression format of zip files.
|===
// dataformats: END

== Camel Languages

// languages: START
Number of Camel languages: 9 in 3 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Language | Since | Description

| link:https://camel.apache.org/components/latest/bean-language.html[Bean method] (camel-quarkus-bean) | 0.2.0 | To use a Java bean (aka method call) in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/constant-language.html[Constant] (camel-quarkus-core) | 0.2.0 | To use a constant value in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/exchangeProperty-language.html[ExchangeProperty] (camel-quarkus-core) | 0.2.0 | To use a Camel Exchange property in expressions or predicates.

| link:https://camel.apache.org/components/latest/file-language.html[File] (camel-quarkus-core) | 0.2.0 | For expressions and predicates using the file/simple language.

| link:https://camel.apache.org/components/latest/header-language.html[Header] (camel-quarkus-core) | 0.2.0 | To use a Camel Message header in expressions or predicates.

| link:https://camel.apache.org/components/latest/jsonpath-language.html[JsonPath] (camel-quarkus-jsonpath) | 1.0.0-M3 | To use JsonPath in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/ref-language.html[Ref] (camel-quarkus-core) | 0.2.0 | Reference to an existing Camel expression or predicate, which is looked up from the Camel registry.

| link:https://camel.apache.org/components/latest/simple-language.html[Simple] (camel-quarkus-core) | 0.2.0 | To use Camels built-in Simple language in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/tokenize-language.html[Tokenize] (camel-quarkus-core) | 0.2.0 | To use Camel message body or header with a tokenizer in Camel expressions or predicates.
|===
// languages: END

== Miscellaneous Extensions

// others: START
Number of miscellaneous extensions: 9 in 9 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Extension | Since | Description

| (camel-quarkus-attachments) | 0.3.0 | Java Attachments support for Camel Message

| (camel-quarkus-core-cloud) | 0.2.0 | The Camel Quarkus core cloud module

| (camel-quarkus-core-xml) | 0.3.0 | Includes implementations of Java Architecture for XML Binding (JAXB) and Java API for XML Processing (JAXP)

| (camel-quarkus-endpointdsl) | 1.0.0-M3 | camel-quarkus-endpointdsl

| (camel-quarkus-hystrix) | 1.0.0-M1 | Circuit Breaker EIP using Netflix Hystrix

| (camel-quarkus-kotlin) | 1.0.0-M3 | camel-quarkus-kotlin

| xref:extensions/microprofile-health.adoc[camel-quarkus-microprofile-health]  | 0.3.0 | Bridging Eclipse MicroProfile Health with Camel health checks

| xref:extensions/opentracing.adoc[camel-quarkus-opentracing]  | 0.3.0 | Distributed tracing using OpenTracing

| (camel-quarkus-reactive-executor) | 0.3.0 | Reactive Executor for camel-core using Vert.x
|===
// others: END
