[list-of-camel-components]
= List of Camel components

The following Apache Camel artifacts are provided:

== Components

// components: START
Number of Components: 306 in 244 JAR artifacts (0 deprecated)

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

| xref:activemq-component.adoc[ActiveMQ] (camel-activemq) | 1.0 | The activemq component allows messages to be sent to (or consumed from) Apache ActiveMQ. This component extends the Camel JMS component.

| xref:ahc-component.adoc[AHC] (camel-ahc) | 2.8 | To call external HTTP services using Async Http Client.

| xref:ahc-ws-component.adoc[AHC Websocket] (camel-ahc-ws) | 2.14 | To exchange data with external Websocket servers using Async Http Client.

| xref:amqp-component.adoc[AMQP] (camel-amqp) | 1.2 | Messaging with AMQP protocol using Apache QPid Client.

| xref:apns-component.adoc[APNS] (camel-apns) | 2.8 | For sending notifications to Apple iOS devices.

| xref:as2-component.adoc[AS2] (camel-as2) | 2.22 | Component used for transferring data secure and reliable over the internet using the AS2 protocol.

| xref:asterisk-component.adoc[Asterisk] (camel-asterisk) | 2.18 | The asterisk component is used to interact with Asterisk PBX Server.

| xref:atmos-component.adoc[Atmos] (camel-atmos) | 2.15 | The atmos component is used for integrating with EMC's Atomos Storage.

| xref:atmosphere-websocket-component.adoc[Atmosphere Websocket] (camel-atmosphere-websocket) | 2.14 | To exchange data with external Websocket clients using Atmosphere.

| xref:atom-component.adoc[Atom] (camel-atom) | 1.2 | The atom component is used for consuming Atom RSS feeds.

| xref:atomix-map-component.adoc[Atomix Map] (camel-atomix) | 2.20 | The atomix-map component is used to access Atomix's distributed map.

| xref:atomix-messaging-component.adoc[Atomix Messaging] (camel-atomix) | 2.20 | The atomix-messaging component is used to access Atomix's group messaging.

| xref:atomix-multimap-component.adoc[Atomix MultiMap] (camel-atomix) | 2.20 | The atomix-multimap component is used to access Atomix's distributed multi map.

| xref:atomix-queue-component.adoc[Atomix Queue] (camel-atomix) | 2.20 | The atomix-queue component is used to access Atomix's distributed queue.

| xref:atomix-set-component.adoc[Atomix Set] (camel-atomix) | 2.20 | The atomix-set component is used to access Atomix's distributed set.

| xref:atomix-value-component.adoc[Atomix Value] (camel-atomix) | 2.20 | The atomix-value component is used to access Atomix's distributed value.

| xref:avro-component.adoc[Avro] (camel-avro) | 2.10 | Working with Apache Avro for data serialization.

| xref:aws-cw-component.adoc[AWS CloudWatch] (camel-aws-cw) | 2.11 | The aws-cw component is used for sending metrics to an Amazon CloudWatch.

| xref:aws-ddb-component.adoc[AWS DynamoDB] (camel-aws-ddb) | 2.10 | The aws-ddb component is used for storing and retrieving data from Amazon's DynamoDB service.

| xref:aws-ddbstream-component.adoc[AWS DynamoDB Streams] (camel-aws-ddb) | 2.17 | The aws-ddbstream component is used for working with Amazon DynamoDB Streams.

| xref:aws-ec2-component.adoc[AWS EC2] (camel-aws-ec2) | 2.16 | The aws-ec2 is used for managing Amazon EC2 instances.

| xref:aws-ecs-component.adoc[AWS ECS] (camel-aws-ecs) | 3.0 | The aws-ecs is used for managing Amazon ECS

| xref:aws-eks-component.adoc[AWS EKS] (camel-aws-eks) | 3.0 | The aws-eks is used for managing Amazon EKS

| xref:aws-iam-component.adoc[AWS IAM] (camel-aws-iam) | 2.23 | The aws-iam is used for managing Amazon IAM

| xref:aws-kinesis-component.adoc[AWS Kinesis] (camel-aws-kinesis) | 2.17 | The aws-kinesis component is for consuming and producing records from Amazon Kinesis Streams.

| xref:aws-kinesis-firehose-component.adoc[AWS Kinesis Firehose] (camel-aws-kinesis) | 2.19 | The aws-kinesis-firehose component is used for producing Amazon's Kinesis Firehose streams.

| xref:aws-kms-component.adoc[AWS KMS] (camel-aws-kms) | 2.21 | The aws-kms is used for managing Amazon KMS

| xref:aws-lambda-component.adoc[AWS Lambda] (camel-aws-lambda) | 2.20 | The aws-lambda is used for managing and invoking functions from Amazon Lambda.

| xref:aws-mq-component.adoc[AWS MQ] (camel-aws-mq) | 2.21 | The aws-mq is used for managing Amazon MQ instances.

| xref:aws-msk-component.adoc[AWS MSK] (camel-aws-msk) | 3.0 | The aws-msk is used for managing Amazon MSK

| xref:aws-s3-component.adoc[AWS S3 Storage Service] (camel-aws-s3) | 2.8 | The aws-s3 component is used for storing and retrieving object from Amazon S3 Storage Service.

| xref:aws-ses-component.adoc[AWS Simple Email Service] (camel-aws-ses) | 2.9 | The aws-ses component is used for sending emails with Amazon's SES service.

| xref:aws-sns-component.adoc[AWS Simple Notification System] (camel-aws-sns) | 2.8 | The aws-sns component is used for sending messages to an Amazon Simple Notification Topic.

| xref:aws-sqs-component.adoc[AWS Simple Queue Service] (camel-aws-sqs) | 2.6 | The aws-sqs component is used for sending and receiving messages to Amazon's SQS service.

| xref:aws-swf-component.adoc[AWS Simple Workflow] (camel-aws-swf) | 2.13 | The aws-swf component is used for managing workflows from Amazon Simple Workflow.

| xref:aws-sdb-component.adoc[AWS SimpleDB] (camel-aws-sdb) | 2.9 | The aws-sdb component is for storing and retrieving data from/to Amazon's SDB service.

| xref:aws-translate-component.adoc[AWS Translate] (camel-aws-translate) | 3.0 | The aws-translate component is used for managing Amazon Translate

| xref:azure-blob-component.adoc[Azure Storage Blob Service] (camel-azure) | 2.19 | The azure-blob component is used for storing and retrieving blobs from Azure Storage Blob Service.

| xref:azure-queue-component.adoc[Azure Storage Queue Service] (camel-azure) | 2.19 | The azure-queue component is used for storing and retrieving messages from Azure Storage Queue Service.

| xref:bean-component.adoc[Bean] (camel-bean) | 1.0 | The bean component is for invoking Java beans from Camel.

| xref:bean-validator-component.adoc[Bean Validator] (camel-bean-validator) | 2.3 | The Validator component performs bean validation of the message body using the Java Bean Validation API.

| xref:beanstalk-component.adoc[Beanstalk] (camel-beanstalk) | 2.15 | The beanstalk component is used for job retrieval and post-processing of Beanstalk jobs.

| xref:bonita-component.adoc[Bonita] (camel-bonita) | 2.19 | Used for communicating with a remote Bonita BPM process engine.

| xref:box-component.adoc[Box] (camel-box) | 2.14 | For uploading downloading and managing files folders groups collaborations etc on box DOT com.

| xref:braintree-component.adoc[Braintree] (camel-braintree) | 2.17 | The braintree component is used for integrating with the Braintree Payment System.

| xref:browse-component.adoc[Browse] (camel-browse) | 1.3 | The browse component is used for viewing the messages received on endpoints that supports BrowsableEndpoint.

| xref:caffeine-cache-component.adoc[Caffeine Cache] (camel-caffeine) | 2.20 | The caffeine-cache component is used for integration with Caffeine Cache.

| xref:caffeine-loadcache-component.adoc[Caffeine LoadCache] (camel-caffeine) | 2.20 | The caffeine-loadcache component is used for integration with Caffeine Load Cache.

| xref:cql-component.adoc[Cassandra CQL] (camel-cassandraql) | 2.15 | The cql component aims at integrating Cassandra 2.0 using the CQL3 API (not the Thrift API).

| xref:chatscript-component.adoc[ChatScript] (camel-chatscript) | 3.0 | Represents a ChatScript endpoint.

| xref:chunk-component.adoc[Chunk] (camel-chunk) | 2.15 | Transforms the message using a Chunk template.

| xref:class-component.adoc[Class] (camel-bean) | 2.4 | The class component is for invoking Java classes (Java beans) from Camel.

| xref:cm-sms-component.adoc[CM SMS Gateway] (camel-cm-sms) | 2.18 | The cm-sms component allows to integrate with CM SMS Gateway.

| xref:cmis-component.adoc[CMIS] (camel-cmis) | 2.11 | The cmis component uses the Apache Chemistry client API and allows you to add/read nodes to/from a CMIS compliant content repositories.

| xref:coap-component.adoc[CoAP] (camel-coap) | 2.16 | The coap component is used for sending and receiving messages from COAP capable devices.

| xref:cometd-component.adoc[CometD] (camel-cometd) | 2.0 | The cometd component is a transport for working with the Jetty implementation of the cometd/bayeux protocol.

| xref:consul-component.adoc[Consul] (camel-consul) | 2.18 | The camel consul component allows you to work with Consul, a distributed, highly available, datacenter-aware, service discovery and configuration system.

| xref:controlbus-component.adoc[Control Bus] (camel-controlbus) | 2.11 | The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.

| xref:corda-component.adoc[Corda] (camel-corda) | 2.23 | The corda component uses the corda-rpc to interact with corda nodes.

| xref:couchbase-component.adoc[Couchbase] (camel-couchbase) | 2.19 | Represents a Couchbase endpoint that can query Views with a Poll strategy and/or produce various type of operations.

| xref:couchdb-component.adoc[CouchDB] (camel-couchdb) | 2.11 | The couchdb component is used for integrate with CouchDB databases.

| xref:crypto-component.adoc[Crypto (JCE)] (camel-crypto) | 2.3 | The crypto component is used for signing and verifying exchanges using the Signature Service of the Java Cryptographic Extension (JCE).

| xref:crypto-cms-component.adoc[Crypto CMS] (camel-crypto-cms) | 2.20 | The crypto cms component is used for encrypting data in CMS Enveloped Data format, decrypting CMS Enveloped Data, signing data in CMS Signed Data format, and verifying CMS Signed Data.

| xref:cxf-component.adoc[CXF] (camel-cxf) | 1.0 | The cxf component is used for SOAP WebServices using Apache CXF.

| xref:cxfrs-component.adoc[CXF-RS] (camel-cxf) | 2.0 | The cxfrs component is used for JAX-RS REST services using Apache CXF.

| xref:dataformat-component.adoc[Data Format] (camel-dataformat) | 2.12 | The dataformat component is used for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.

| xref:dataset-component.adoc[Dataset] (camel-dataset) | 1.3 | The dataset component provides a mechanism to easily perform load & soak testing of your system.

| xref:dataset-test-component.adoc[DataSet Test] (camel-dataset) | 1.3 | The dataset-test component extends the mock component by on startup to pull messages from another endpoint to set the expected message bodies.

| xref:debezium-mongodb-component.adoc[Debezium MongoDB Connector] (camel-debezium-mongodb) | 3.0 | Represents a Debezium MongoDB endpoint which is used to capture changes in MongoDB database so that that applications can see those changes and respond to them.

| xref:debezium-mysql-component.adoc[Debezium MySQL Connector] (camel-debezium-mysql) | 3.0 | Represents a Debezium MySQL endpoint which is used to capture changes in MySQL database so that that applications can see those changes and respond to them.

| xref:debezium-postgres-component.adoc[Debezium PostgresSQL Connector] (camel-debezium-postgres) | 3.0 | Represents a Debezium PostgresSQL endpoint which is used to capture changes in PostgresSQL database so that that applications can see those changes and respond to them.

| xref:debezium-sqlserver-component.adoc[Debezium SQL Server Connector] (camel-debezium-sqlserver) | 3.0 | Represents a Debezium SQL Server endpoint which is used to capture changes in SQL Server database so that that applications can see those changes and respond to them.

| xref:digitalocean-component.adoc[DigitalOcean] (camel-digitalocean) | 2.19 | The DigitalOcean component allows you to manage Droplets and resources within the DigitalOcean cloud.

| xref:direct-component.adoc[Direct] (camel-direct) | 1.0 | The direct component provides direct, synchronous call to another endpoint from the same CamelContext.

| xref:direct-vm-component.adoc[Direct VM] (camel-directvm) | 2.10 | The direct-vm component provides direct, synchronous call to another endpoint from any CamelContext in the same JVM.

| xref:disruptor-component.adoc[Disruptor] (camel-disruptor) | 2.12 | The disruptor component provides asynchronous SEDA behavior using LMAX Disruptor.

| xref:dns-component.adoc[DNS] (camel-dns) | 2.7 | To lookup domain information and run DNS queries using DNSJava.

| xref:docker-component.adoc[Docker] (camel-docker) | 2.15 | The docker component is used for managing Docker containers.

| xref:dozer-component.adoc[Dozer] (camel-dozer) | 2.15 | The dozer component provides the ability to map between Java beans using the Dozer mapping library.

| xref:drill-component.adoc[Drill] (camel-drill) | 2.19 | The drill component gives you the ability to quering into apache drill cluster.

| xref:dropbox-component.adoc[Dropbox] (camel-dropbox) | 2.14 | For uploading, downloading and managing files, folders, groups, collaborations, etc on dropbox DOT com.

| xref:ehcache-component.adoc[Ehcache] (camel-ehcache) | 2.18 | The ehcache component enables you to perform caching operations using Ehcache as cache implementation.

| xref:elasticsearch-rest-component.adoc[Elastichsearch Rest] (camel-elasticsearch-rest) | 2.21 | The elasticsearch component is used for interfacing with ElasticSearch server using REST API.

| xref:elsql-component.adoc[ElSQL] (camel-elsql) | 2.16 | The elsql component is an extension to the existing SQL Component that uses ElSql to define the SQL queries.

| xref:etcd-component.adoc[Etcd] (camel-etcd) | 2.18 | The camel etcd component allows you to work with Etcd, a distributed reliable key-value store.

| xref:exec-component.adoc[Exec] (camel-exec) | 2.3 | The exec component can be used to execute OS system commands.

| xref:facebook-component.adoc[Facebook] (camel-facebook) | 2.14 | The Facebook component provides access to all of the Facebook APIs accessible using Facebook4J.

| xref:fhir-component.adoc[FHIR] (camel-fhir) | 2.23 | The fhir component is used for working with the FHIR protocol (health care).

| xref:file-component.adoc[File] (camel-file) | 1.0 | The file component is used for reading or writing files.

| xref:file-watch-component.adoc[file-watch] (camel-file-watch) | 3.0 | The file-watch is used to monitor file events in directory using java.nio.file.WatchService

| xref:flatpack-component.adoc[Flatpack] (camel-flatpack) | 1.4 | The flatpack component supports fixed width and delimited file parsing via the FlatPack library.

| xref:flink-component.adoc[Flink] (camel-flink) | 2.18 | The flink component can be used to send DataSet jobs to Apache Flink cluster.

| xref:fop-component.adoc[FOP] (camel-fop) | 2.10 | The fop component allows you to render a message into different output formats using Apache FOP.

| xref:freemarker-component.adoc[Freemarker] (camel-freemarker) | 2.10 | Transforms the message using a FreeMarker template.

| xref:ftp-component.adoc[FTP] (camel-ftp) | 1.1 | The \ftp component is used for uploading or downloading files from FTP servers.

| xref:ftps-component.adoc[FTPS] (camel-ftp) | 2.2 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.

| xref:ganglia-component.adoc[Ganglia] (camel-ganglia) | 2.15 | The ganglia component is used for sending metrics to the Ganglia monitoring system.

| xref:geocoder-component.adoc[Geocoder] (camel-geocoder) | 2.12 | The geocoder component is used for looking up geocodes (latitude and longitude) for a given address, or reverse lookup.

| xref:git-component.adoc[Git] (camel-git) | 2.16 | The git component is used for working with git repositories.

| xref:github-component.adoc[GitHub] (camel-github) | 2.15 | The github component is used for integrating Camel with github.

| xref:google-bigquery-component.adoc[Google BigQuery] (camel-google-bigquery) | 2.20 | Google BigQuery data warehouse for analytics.

| xref:google-bigquery-sql-component.adoc[Google BigQuery Standard SQL] (camel-google-bigquery) | 2.23 | Google BigQuery data warehouse for analytics (using SQL queries).

| xref:google-calendar-component.adoc[Google Calendar] (camel-google-calendar) | 2.15 | The google-calendar component provides access to Google Calendar.

| xref:google-calendar-stream-component.adoc[Google Calendar Stream] (camel-google-calendar) | 2.23 | The google-calendar component provides access to Google Calendar in a streaming mode.

| xref:google-drive-component.adoc[Google Drive] (camel-google-drive) | 2.14 | The google-drive component provides access to Google Drive file storage service.

| xref:google-mail-component.adoc[Google Mail] (camel-google-mail) | 2.15 | The google-mail component provides access to Google Mail.

| xref:google-mail-stream-component.adoc[Google Mail Stream] (camel-google-mail) | 2.22 | The google-mail component provides access to Google Mail.

| xref:google-pubsub-component.adoc[Google Pubsub] (camel-google-pubsub) | 2.19 | Messaging client for Google Cloud Platform PubSub Service

| xref:google-sheets-component.adoc[Google Sheets] (camel-google-sheets) | 2.23 | The google-sheets component provides access to Google Sheets.

| xref:google-sheets-stream-component.adoc[Google Sheets Stream] (camel-google-sheets) | 2.23 | The google-sheets component provides access to Google Sheets.

| xref:gora-component.adoc[Gora] (camel-gora) | 2.14 | The gora component allows you to work with NoSQL databases using the Apache Gora framework.

| xref:grape-component.adoc[Grape] (camel-grape) | 2.16 | The grape component allows you to fetch, load and manage additional jars when CamelContext is running.

| xref:graphql-component.adoc[GraphQL] (camel-graphql) | 3.0 | A Camel GraphQL Component

| xref:grpc-component.adoc[gRPC] (camel-grpc) | 2.19 | The gRPC component allows to call and expose remote procedures via HTTP/2 with protobuf dataformat

| xref:guava-eventbus-component.adoc[Guava EventBus] (camel-guava-eventbus) | 2.10 | The guava-eventbus component provides integration bridge between Camel and Google Guava EventBus.

| xref:hazelcast-atomicvalue-component.adoc[Hazelcast Atomic Number] (camel-hazelcast) | 2.7 | The hazelcast-atomicvalue component is used to access Hazelcast atomic number, which is an object that simply provides a grid wide number (long).

| xref:hazelcast-instance-component.adoc[Hazelcast Instance] (camel-hazelcast) | 2.7 | The hazelcast-instance component is used to consume join/leave events of the cache instance in the cluster.

| xref:hazelcast-list-component.adoc[Hazelcast List] (camel-hazelcast) | 2.7 | The hazelcast-list component is used to access Hazelcast distributed list.

| xref:hazelcast-map-component.adoc[Hazelcast Map] (camel-hazelcast) | 2.7 | The hazelcast-map component is used to access Hazelcast distributed map.

| xref:hazelcast-multimap-component.adoc[Hazelcast Multimap] (camel-hazelcast) | 2.7 | The hazelcast-multimap component is used to to access Hazelcast distributed multimap.

| xref:hazelcast-queue-component.adoc[Hazelcast Queue] (camel-hazelcast) | 2.7 | The hazelcast-queue component is used to access Hazelcast distributed queue.

| xref:hazelcast-replicatedmap-component.adoc[Hazelcast Replicated Map] (camel-hazelcast) | 2.16 | The hazelcast-replicatedmap component is used to access Hazelcast replicated map.

| xref:hazelcast-ringbuffer-component.adoc[Hazelcast Ringbuffer] (camel-hazelcast) | 2.16 | The hazelcast-ringbuffer component is used to access Hazelcast distributed ringbuffer.

| xref:hazelcast-seda-component.adoc[Hazelcast SEDA] (camel-hazelcast) | 2.7 | The hazelcast-seda component is used to access Hazelcast BlockingQueue.

| xref:hazelcast-set-component.adoc[Hazelcast Set] (camel-hazelcast) | 2.7 | The hazelcast-set component is used to access Hazelcast distributed set.

| xref:hazelcast-topic-component.adoc[Hazelcast Topic] (camel-hazelcast) | 2.15 | The hazelcast-topic component is used to access Hazelcast distributed topic.

| xref:hbase-component.adoc[HBase] (camel-hbase) | 2.10 | For reading/writing from/to an HBase store (Hadoop database).

| xref:hdfs-component.adoc[HDFS] (camel-hdfs) | 2.14 | For reading/writing from/to an HDFS filesystem using Hadoop 2.x.

| xref:hipchat-component.adoc[Hipchat] (camel-hipchat) | 2.15 | The hipchat component supports producing and consuming messages from/to Hipchat service.

| xref:http-component.adoc[HTTP] (camel-http) | 2.3 | For calling out to external HTTP servers using Apache HTTP Client 4.x.

| xref:iec60870-client-component.adoc[IEC 60870 Client] (camel-iec60870) | 2.20 | IEC 60870 component used for telecontrol (supervisory control and data acquisition) such as controlling electric power transmission grids and other geographically widespread control systems.

| xref:iec60870-server-component.adoc[IEC 60870 Server] (camel-iec60870) | 2.20 | IEC 60870 component used for telecontrol (supervisory control and data acquisition) such as controlling electric power transmission grids and other geographically widespread control systems.

| xref:ignite-cache-component.adoc[Ignite Cache] (camel-ignite) | 2.17 | The Ignite Cache endpoint is one of camel-ignite endpoints which allows you to interact with an Ignite Cache.

| xref:ignite-compute-component.adoc[Ignite Compute] (camel-ignite) | 2.17 | The Ignite Compute endpoint is one of camel-ignite endpoints which allows you to run compute operations on the cluster by passing in an IgniteCallable, an IgniteRunnable, an IgniteClosure, or collections of them, along with their parameters if necessary.

| xref:ignite-events-component.adoc[Ignite Events] (camel-ignite) | 2.17 | The Ignite Events endpoint is one of camel-ignite endpoints which allows you to receive events from the Ignite cluster by creating a local event listener.

| xref:ignite-idgen-component.adoc[Ignite ID Generator] (camel-ignite) | 2.17 | The Ignite ID Generator endpoint is one of camel-ignite endpoints which allows you to interact with Ignite Atomic Sequences and ID Generators.

| xref:ignite-messaging-component.adoc[Ignite Messaging] (camel-ignite) | 2.17 | The Ignite Messaging endpoint is one of camel-ignite endpoints which allows you to send and consume messages from an Ignite topic.

| xref:ignite-queue-component.adoc[Ignite Queues] (camel-ignite) | 2.17 | The Ignite Queue endpoint is one of camel-ignite endpoints which allows you to interact with Ignite Queue data structures.

| xref:ignite-set-component.adoc[Ignite Sets] (camel-ignite) | 2.17 | The Ignite Sets endpoint is one of camel-ignite endpoints which allows you to interact with Ignite Set data structures.

| xref:infinispan-component.adoc[Infinispan] (camel-infinispan) | 2.13 | For reading/writing from/to Infinispan distributed key/value store and data grid.

| xref:influxdb-component.adoc[InfluxDB] (camel-influxdb) | 2.18 | The influxdb component allows you to interact with InfluxDB, a time series database.

| xref:iota-component.adoc[IOTA] (camel-iota) | 2.23 | Component for integrate IOTA DLT

| xref:ipfs-component.adoc[IPFS] (camel-ipfs) | 2.23 | The camel-ipfs component provides access to the Interplanetary File System (IPFS).

| xref:irc-component.adoc[IRC] (camel-irc) | 1.1 | The irc component implements an IRC (Internet Relay Chat) transport.

| xref:ironmq-component.adoc[IronMQ] (camel-ironmq) | 2.17 | The ironmq provides integration with IronMQ an elastic and durable hosted message queue as a service.

| xref:websocket-jsr356-component.adoc[Javax Websocket] (camel-websocket-jsr356) | 2.23 | Camel WebSocket using JSR356 (javax)

| xref:jbpm-component.adoc[JBPM] (camel-jbpm) | 2.6 | The jbpm component provides integration with jBPM (Business Process Management).

| xref:jcache-component.adoc[JCache] (camel-jcache) | 2.17 | The jcache component enables you to perform caching operations using JSR107/JCache as cache implementation.

| xref:jclouds-component.adoc[JClouds] (camel-jclouds) | 2.9 | For interacting with cloud compute & blobstore service via jclouds.

| xref:jcr-component.adoc[JCR] (camel-jcr) | 1.3 | The jcr component allows you to add/read nodes to/from a JCR compliant content repository.

| xref:jdbc-component.adoc[JDBC] (camel-jdbc) | 1.2 | The jdbc component enables you to access databases through JDBC, where SQL queries are sent in the message body.

| xref:jetty-component.adoc[Jetty] (camel-jetty) | 1.2 | To use Jetty as a HTTP server as consumer for Camel routes.

| xref:websocket-component.adoc[Jetty Websocket] (camel-websocket) | 2.10 | The websocket component provides websocket endpoints with Jetty for communicating with clients using websocket.

| xref:jgroups-component.adoc[JGroups] (camel-jgroups) | 2.13 | The jgroups component provides exchange of messages between Camel and JGroups clusters.

| xref:jgroups-raft-component.adoc[JGroups raft] (camel-jgroups-raft) | 2.24 | The jgroups component provides exchange of messages between Camel and JGroups clusters.

| xref:jing-component.adoc[Jing] (camel-jing) | 1.1 | Validates the payload of a message using RelaxNG Syntax using Jing library.

| xref:jira-component.adoc[Jira] (camel-jira) | 3.0 | The jira component interacts with the JIRA issue tracker.

| xref:jms-component.adoc[JMS] (camel-jms) | 1.0 | The jms component allows messages to be sent to (or consumed from) a JMS Queue or Topic.

| xref:jmx-component.adoc[JMX] (camel-jmx) | 2.6 | The jmx component allows to receive JMX notifications.

| xref:jolt-component.adoc[JOLT] (camel-jolt) | 2.16 | The jolt component allows you to process a JSON messages using an JOLT specification (such as JSON-JSON transformation).

| xref:jooq-component.adoc[JOOQ] (camel-jooq) | 3.0 | The jooq component enables you to store and retrieve entities from databases using JOOQ

| xref:jpa-component.adoc[JPA] (camel-jpa) | 1.0 | The jpa component enables you to store and retrieve Java objects from databases using JPA.

| xref:json-validator-component.adoc[JSON Schema Validator] (camel-json-validator) | 2.20 | Validates the payload of a message using NetworkNT JSON Schema library.

| xref:jt400-component.adoc[JT400] (camel-jt400) | 1.5 | The jt400 component allows you to exchanges messages with an AS/400 system using data queues or program call.

| xref:kafka-component.adoc[Kafka] (camel-kafka) | 2.13 | The kafka component allows messages to be sent to (or consumed from) Apache Kafka brokers.

| xref:kubernetes-config-maps-component.adoc[Kubernetes ConfigMap] (camel-kubernetes) | 2.17 | The Kubernetes Configmaps component provides a producer to execute kubernetes configmap operations.

| xref:kubernetes-deployments-component.adoc[Kubernetes Deployments] (camel-kubernetes) | 2.20 | The Kubernetes Nodes component provides a producer to execute kubernetes node operations and a consumer to consume node events.

| xref:kubernetes-hpa-component.adoc[Kubernetes HPA] (camel-kubernetes) | 2.23 | The Kubernetes HPA component provides a producer to execute kubernetes hpa operations and a consumer to consume HPA events.

| xref:kubernetes-job-component.adoc[Kubernetes Job] (camel-kubernetes) | 2.23 | The Kubernetes Jobs component provides a producer to execute kubernetes job operations

| xref:kubernetes-namespaces-component.adoc[Kubernetes Namespaces] (camel-kubernetes) | 2.17 | The Kubernetes Namespaces component provides a producer to execute kubernetes namespace operations and a consumer to consume namespace events.

| xref:kubernetes-nodes-component.adoc[Kubernetes Nodes] (camel-kubernetes) | 2.17 | The Kubernetes Nodes component provides a producer to execute kubernetes node operations and a consumer to consume node events.

| xref:kubernetes-persistent-volumes-component.adoc[Kubernetes Persistent Volume] (camel-kubernetes) | 2.17 | The Kubernetes Persistent Volumes component provides a producer to execute kubernetes persistent volume operations.

| xref:kubernetes-persistent-volumes-claims-component.adoc[Kubernetes Persistent Volume Claim] (camel-kubernetes) | 2.17 | The Kubernetes Persistent Volumes Claims component provides a producer to execute kubernetes persistent volume claim operations.

| xref:kubernetes-pods-component.adoc[Kubernetes Pods] (camel-kubernetes) | 2.17 | The Kubernetes Pods component provides a producer to execute kubernetes pod operations and a consumer to consume pod events.

| xref:kubernetes-replication-controllers-component.adoc[Kubernetes Replication Controller] (camel-kubernetes) | 2.17 | The Kubernetes Replication Controllers component provides a producer to execute kubernetes replication controller operations and a consumer to consume replication controller events.

| xref:kubernetes-resources-quota-component.adoc[Kubernetes Resources Quota] (camel-kubernetes) | 2.17 | The Kubernetes Resources Quota component provides a producer to execute kubernetes resources quota operations.

| xref:kubernetes-secrets-component.adoc[Kubernetes Secrets] (camel-kubernetes) | 2.17 | The Kubernetes Secrets component provides a producer to execute kubernetes secret operations.

| xref:kubernetes-service-accounts-component.adoc[Kubernetes Service Account] (camel-kubernetes) | 2.17 | The Kubernetes Service Accounts component provides a producer to execute service account operations.

| xref:kubernetes-services-component.adoc[Kubernetes Services] (camel-kubernetes) | 2.17 | The Kubernetes Services component provides a producer to execute service operations and a consumer to consume service events.

| xref:kudu-component.adoc[Kudu] (camel-kudu) | 3.0 | Represents a Kudu endpoint. A kudu endpoint allows you to interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem.

| xref:language-component.adoc[Language] (camel-language) | 2.5 | The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.

| xref:ldap-component.adoc[LDAP] (camel-ldap) | 1.5 | The ldap component allows you to perform searches in LDAP servers using filters as the message payload.

| xref:ldif-component.adoc[LDIF] (camel-ldif) | 2.20 | The ldif component allows you to do updates on an LDAP server from a LDIF body content.

| xref:log-component.adoc[Log] (camel-log) | 1.1 | The log component logs message exchanges to the underlying logging mechanism.

| xref:lucene-component.adoc[Lucene] (camel-lucene) | 2.2 | To insert or query from Apache Lucene databases.

| xref:lumberjack-component.adoc[Lumberjack] (camel-lumberjack) | 2.18 | The lumberjack retrieves logs sent over the network using the Lumberjack protocol.

| xref:mail-component.adoc[Mail] (camel-mail) | 1.0 | To send or receive emails using imap/pop3 or smtp protocols.

| xref:master-component.adoc[Master] (camel-master) | 2.20 | Represents an endpoint which only becomes active when the CamelClusterView has the leadership.

| xref:metrics-component.adoc[Metrics] (camel-metrics) | 2.14 | To collect various metrics directly from Camel routes using the DropWizard metrics library.

| xref:micrometer-component.adoc[Micrometer] (camel-micrometer) | 2.22 | To collect various metrics directly from Camel routes using the Micrometer library.

| xref:microprofile-metrics-component.adoc[MicroProfile Metrics] (camel-microprofile-metrics) | 3.0 | Camel metrics exposed with Eclipse MicroProfile Metrics

| xref:mina-component.adoc[Mina] (camel-mina) | 2.10 | Socket level networking using TCP or UDP with the Apache Mina 2.x library.

| xref:mllp-component.adoc[MLLP] (camel-mllp) | 2.17 | Provides functionality required by Healthcare providers to communicate with other systems using the MLLP protocol.

| xref:mock-component.adoc[Mock] (camel-mock) | 1.0 | The mock component is used for testing routes and mediation rules using mocks.

| xref:mongodb-component.adoc[MongoDB] (camel-mongodb) | 2.19 | Component for working with documents stored in MongoDB database.

| xref:mongodb-gridfs-component.adoc[MongoDB GridFS] (camel-mongodb-gridfs) | 2.18 | Component for working with MongoDB GridFS.

| xref:msv-component.adoc[MSV] (camel-msv) | 1.1 | Validates the payload of a message using the MSV Library.

| xref:mustache-component.adoc[Mustache] (camel-mustache) | 2.12 | Transforms the message using a Mustache template.

| xref:mvel-component.adoc[MVEL] (camel-mvel) | 2.12 | Transforms the message using a MVEL template.

| xref:mybatis-component.adoc[MyBatis] (camel-mybatis) | 2.7 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.

| xref:mybatis-bean-component.adoc[MyBatis Bean] (camel-mybatis) | 2.22 | Performs a query, insert, update or delete in a relational database using MyBatis.

| xref:nagios-component.adoc[Nagios] (camel-nagios) | 2.3 | To send passive checks to Nagios using JSendNSCA.

| xref:nats-component.adoc[Nats] (camel-nats) | 2.17 | The nats component allows you produce and consume messages from NATS.

| xref:netty-component.adoc[Netty] (camel-netty) | 2.14 | Socket level networking using TCP or UDP with the Netty 4.x library.

| xref:netty-http-component.adoc[Netty HTTP] (camel-netty-http) | 2.14 | Netty HTTP server and client using the Netty 4.x library.

| xref:nitrite-component.adoc[Nitrite] (camel-nitrite) | 3.0 | Used for integrating Camel with Nitrite databases.

| xref:nsq-component.adoc[NSQ] (camel-nsq) | 2.23 | Represents a nsq endpoint.

| xref:olingo2-component.adoc[Olingo2] (camel-olingo2) | 2.14 | Communicates with OData 2.0 services using Apache Olingo.

| xref:olingo4-component.adoc[Olingo4] (camel-olingo4) | 2.19 | Communicates with OData 4.0 services using Apache Olingo OData API.

| xref:milo-client-component.adoc[OPC UA Client] (camel-milo) | 2.19 | Connect to OPC UA servers using the binary protocol for acquiring telemetry data

| xref:milo-server-component.adoc[OPC UA Server] (camel-milo) | 2.19 | Make telemetry data available as an OPC UA server

| xref:openshift-build-configs-component.adoc[Openshift Build Config] (camel-kubernetes) | 2.17 | The Kubernetes Build Config component provides a producer to execute kubernetes build config operations.

| xref:openshift-builds-component.adoc[Openshift Builds] (camel-kubernetes) | 2.17 | The Openshift Builds component provides a producer to execute openshift build operations.

| xref:openstack-cinder-component.adoc[OpenStack Cinder] (camel-openstack) | 2.19 | The openstack-cinder component allows messages to be sent to an OpenStack block storage services.

| xref:openstack-glance-component.adoc[OpenStack Glance] (camel-openstack) | 2.19 | The openstack-glance component allows messages to be sent to an OpenStack image services.

| xref:openstack-keystone-component.adoc[OpenStack Keystone] (camel-openstack) | 2.19 | The openstack-keystone component allows messages to be sent to an OpenStack identity services.

| xref:openstack-neutron-component.adoc[OpenStack Neutron] (camel-openstack) | 2.19 | The openstack-neutron component allows messages to be sent to an OpenStack network services.

| xref:openstack-nova-component.adoc[OpenStack Nova] (camel-openstack) | 2.19 | The openstack-nova component allows messages to be sent to an OpenStack compute services.

| xref:openstack-swift-component.adoc[OpenStack Swift] (camel-openstack) | 2.19 | The openstack-swift component allows messages to be sent to an OpenStack object storage services.

| xref:optaplanner-component.adoc[OptaPlanner] (camel-optaplanner) | 2.13 | Solves the planning problem contained in a message with OptaPlanner.

| xref:eventadmin-component.adoc[OSGi EventAdmin] (camel-eventadmin) | 2.6 | The eventadmin component can be used in an OSGi environment to receive OSGi EventAdmin events and process them.

| xref:paxlogging-component.adoc[OSGi PAX Logging] (camel-paxlogging) | 2.6 | The paxlogging component can be used in an OSGi environment to receive PaxLogging events and process them.

| xref:paho-component.adoc[Paho] (camel-paho) | 2.16 | Component for communicating with MQTT message brokers using Eclipse Paho MQTT Client.

| xref:pdf-component.adoc[PDF] (camel-pdf) | 2.16 | The pdf components provides the ability to create, modify or extract content from PDF documents.

| xref:platform-http-component.adoc[Platform HTTP] (camel-platform-http) | 3.0 | HTTP service leveraging existing runtime platform HTTP server

| xref:pgevent-component.adoc[PostgresSQL Event] (camel-pgevent) | 2.15 | The pgevent component allows for producing/consuming PostgreSQL events related to the listen/notify commands.

| xref:pg-replication-slot-component.adoc[PostgresSQL Replication Slot] (camel-pg-replication-slot) | 3.0 | Consumer endpoint to receive from PostgreSQL Replication Slot.

| xref:lpr-component.adoc[Printer] (camel-printer) | 2.1 | The printer component is used for sending messages to printers as print jobs.

| xref:pubnub-component.adoc[PubNub] (camel-pubnub) | 2.19 | To send and receive messages to PubNub data stream network for connected devices.

| xref:pulsar-component.adoc[Pulsar] (camel-pulsar) | 2.24 | Camel Apache Pulsar Component

| xref:quartz-component.adoc[Quartz] (camel-quartz) | 2.12 | Provides a scheduled delivery of messages using the Quartz 2.x scheduler.

| xref:quickfix-component.adoc[QuickFix] (camel-quickfix) | 2.1 | The quickfix component allows to send Financial Interchange (FIX) messages to the QuickFix engine.

| xref:rabbitmq-component.adoc[RabbitMQ] (camel-rabbitmq) | 2.12 | The rabbitmq component allows you produce and consume messages from RabbitMQ instances.

| xref:reactive-streams-component.adoc[Reactive Streams] (camel-reactive-streams) | 2.19 | Reactive Camel using reactive streams

| xref:ref-component.adoc[Ref] (camel-ref) | 1.2 | The ref component is used for lookup of existing endpoints bound in the Registry.

| xref:rest-component.adoc[REST] (camel-rest) | 2.14 | The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).

| xref:rest-api-component.adoc[REST API] (camel-rest) | 2.16 | The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.

| xref:rest-openapi-component.adoc[REST OpenApi] (camel-rest-openapi) | 3.1 | An awesome REST endpoint backed by OpenApi specifications.

| xref:rest-swagger-component.adoc[REST Swagger] (camel-rest-swagger) | 2.19 | An awesome REST endpoint backed by Swagger specifications.

| xref:robotframework-component.adoc[Robot Framework] (camel-robotframework) | 3.0 | Represents a RobotFramework endpoint.

| xref:rss-component.adoc[RSS] (camel-rss) | 2.0 | The rss component is used for consuming RSS feeds.

| xref:saga-component.adoc[Saga] (camel-saga) | 2.21 | The saga component provides access to advanced options for managing the flow in the Saga EIP.

| xref:salesforce-component.adoc[Salesforce] (camel-salesforce) | 2.12 | The salesforce component is used for integrating Camel with the massive Salesforce API.

| xref:sap-netweaver-component.adoc[SAP NetWeaver] (camel-sap-netweaver) | 2.12 | The sap-netweaver component integrates with the SAP NetWeaver Gateway using HTTP transports.

| xref:scheduler-component.adoc[Scheduler] (camel-scheduler) | 2.15 | The scheduler component is used for generating message exchanges when a scheduler fires.

| xref:schematron-component.adoc[Schematron] (camel-schematron) | 2.15 | Validates the payload of a message using the Schematron Library.

| xref:scp-component.adoc[SCP] (camel-jsch) | 2.10 | To copy files using the secure copy protocol (SCP).

| xref:seda-component.adoc[SEDA] (camel-seda) | 1.1 | The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.

| xref:service-component.adoc[Service] (camel-service) | 2.22 | Represents an endpoint which is registered to a Service Registry such as Consul, Etcd.

| xref:servicenow-component.adoc[ServiceNow] (camel-servicenow) | 2.18 | The servicenow component is used to integrate Camel with ServiceNow cloud services.

| xref:servlet-component.adoc[Servlet] (camel-servlet) | 2.0 | To use a HTTP Servlet as entry for Camel routes when running in a servlet container.

| xref:sftp-component.adoc[SFTP] (camel-ftp) | 1.1 | The \sftp (FTP over SSH) component is used for uploading or downloading files from SFTP servers.

| xref:sjms-component.adoc[Simple JMS] (camel-sjms) | 2.11 | The sjms component (simple jms) allows messages to be sent to (or consumed from) a JMS Queue or Topic (uses JMS 1.x API).

| xref:sjms-batch-component.adoc[Simple JMS Batch] (camel-sjms) | 2.16 | The sjms-batch component is a specialized for highly performant, transactional batch consumption from a JMS queue.

| xref:sjms2-component.adoc[Simple JMS2] (camel-sjms2) | 2.19 | The sjms2 component (simple jms) allows messages to be sent to (or consumed from) a JMS Queue or Topic (uses JMS 2.x API).

| xref:sip-component.adoc[SIP] (camel-sip) | 2.5 | To send and receive messages using the SIP protocol (used in telco and mobile).

| xref:slack-component.adoc[Slack] (camel-slack) | 2.16 | The slack component allows you to send messages to Slack.

| xref:smpp-component.adoc[SMPP] (camel-smpp) | 2.2 | To send and receive SMS using a SMSC (Short Message Service Center).

| xref:snmp-component.adoc[SNMP] (camel-snmp) | 2.1 | The snmp component gives you the ability to poll SNMP capable devices or receiving traps.

| xref:solr-component.adoc[Solr] (camel-solr) | 2.9 | The solr component allows you to interface with an Apache Lucene Solr server.

| xref:soroush-component.adoc[Soroush] (camel-soroush) | 3.0 | To integrate with the Soroush chat bot.

| xref:spark-component.adoc[Spark] (camel-spark) | 2.17 | The spark component can be used to send RDD or DataFrame jobs to Apache Spark cluster.

| xref:spark-rest-component.adoc[Spark Rest] (camel-spark-rest) | 2.14 | The spark-rest component is used for hosting REST services which has been defined using Camel rest-dsl.

| xref:splunk-component.adoc[Splunk] (camel-splunk) | 2.13 | The splunk component allows to publish or search for events in Splunk.

| xref:spring-batch-component.adoc[Spring Batch] (camel-spring-batch) | 2.10 | The spring-batch component allows to send messages to Spring Batch for further processing.

| xref:spring-event-component.adoc[Spring Event] (camel-spring) | 1.4 | The spring-event component allows to listen for Spring Application Events.

| xref:spring-integration-component.adoc[Spring Integration] (camel-spring-integration) | 1.4 | Bridges Camel with Spring Integration.

| xref:spring-ldap-component.adoc[Spring LDAP] (camel-spring-ldap) | 2.11 | The spring-ldap component allows you to perform searches in LDAP servers using filters as the message payload.

| xref:spring-redis-component.adoc[Spring Redis] (camel-spring-redis) | 2.11 | The spring-redis component allows sending and receiving messages from Redis.

| xref:spring-ws-component.adoc[Spring WebService] (camel-spring-ws) | 2.6 | The spring-ws component is used for SOAP WebServices using Spring WebServices.

| xref:sql-component.adoc[SQL] (camel-sql) | 1.4 | The sql component allows you to work with databases using JDBC SQL queries.

| xref:sql-stored-component.adoc[SQL Stored Procedure] (camel-sql) | 2.17 | The sql component allows you to work with databases using JDBC Stored Procedure queries.

| xref:ssh-component.adoc[SSH] (camel-ssh) | 2.10 | The ssh component enables access to SSH servers such that you can send an SSH command, and process the response.

| xref:stax-component.adoc[StAX] (camel-stax) | 2.9 | The stax component allows messages to be process through a SAX ContentHandler.

| xref:stomp-component.adoc[Stomp] (camel-stomp) | 2.12 | The stomp component is used for communicating with Stomp compliant message brokers.

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

| xref:string-template-component.adoc[String Template] (camel-stringtemplate) | 1.2 | Transforms the message using a String template.

| xref:stub-component.adoc[Stub] (camel-stub) | 2.10 | The stub component provides a simple way to stub out any physical endpoints while in development or testing.

| xref:telegram-component.adoc[Telegram] (camel-telegram) | 2.18 | The telegram component provides access to the Telegram Bot API.

| xref:thrift-component.adoc[Thrift] (camel-thrift) | 2.20 | The Thrift component allows to call and expose remote procedures (RPC) with Apache Thrift data format and serialization mechanism

| xref:tika-component.adoc[Tika] (camel-tika) | 2.19 | This component integrates with Apache Tika to extract content and metadata from thousands of file types.

| xref:timer-component.adoc[Timer] (camel-timer) | 1.0 | The timer component is used for generating message exchanges when a timer fires.

| xref:twilio-component.adoc[Twilio] (camel-twilio) | 2.20 | The Twilio component allows you to interact with the Twilio REST APIs using Twilio Java SDK.

| xref:twitter-directmessage-component.adoc[Twitter Direct Message] (camel-twitter) | 2.10 | The Twitter Direct Message Component consumes/produces user's direct messages.

| xref:twitter-search-component.adoc[Twitter Search] (camel-twitter) | 2.10 | The Twitter Search component consumes search results.

| xref:twitter-timeline-component.adoc[Twitter Timeline] (camel-twitter) | 2.10 | The Twitter Timeline component consumes twitter timeline or update the status of specific user.

| xref:undertow-component.adoc[Undertow] (camel-undertow) | 2.16 | The undertow component provides HTTP and WebSocket based endpoints for consuming and producing HTTP/WebSocket requests.

| xref:validator-component.adoc[Validator] (camel-validator) | 1.1 | Validates the payload of a message using XML Schema and JAXP Validation.

| xref:velocity-component.adoc[Velocity] (camel-velocity) | 1.2 | Transforms the message using a Velocity template.

| xref:vertx-component.adoc[Vert.x] (camel-vertx) | 2.12 | The vertx component is used for sending and receive messages from a vertx event bus.

| xref:vm-component.adoc[VM] (camel-vm) | 1.1 | The vm component provides asynchronous call to another endpoint from the same CamelContext.

| xref:weather-component.adoc[Weather] (camel-weather) | 2.12 | Polls the weather information from Open Weather Map.

| xref:web3j-component.adoc[Web3j Ethereum Blockchain] (camel-web3j) | 2.22 | The web3j component uses the Web3j client API and allows you to add/read nodes to/from a web3j compliant content repositories.

| xref:webhook-component.adoc[Webhook] (camel-webhook) | 3.0 | The webhook component allows other Camel components that can receive push notifications to expose webhook endpoints and automatically register them with their own webhook provider.

| xref:wordpress-component.adoc[Wordpress] (camel-wordpress) | 2.21 | Integrates Camel with Wordpress.

| xref:xchange-component.adoc[XChange] (camel-xchange) | 2.21 | The camel-xchange component provide access to many bitcoin and altcoin exchanges for trading and accessing market data.

| xref:xj-component.adoc[XJ] (camel-xj) | 3.0 | Transforms json/xml message back and forth using a XSLT.

| xref:xmlsecurity-component.adoc[XML Security] (camel-xmlsecurity) | 2.12 | Used to sign and verify exchanges using the XML signature specification.

| xref:xmpp-component.adoc[XMPP] (camel-xmpp) | 1.0 | To send and receive messages from a XMPP (chat) server.

| xref:xquery-component.adoc[XQuery] (camel-saxon) | 1.0 | Transforms the message using a XQuery template using Saxon.

| xref:xslt-component.adoc[XSLT] (camel-xslt) | 1.3 | Transforms the message using a XSLT template.

| xref:xslt-saxon-component.adoc[XSLT Saxon] (camel-xslt-saxon) | 3.0 | Transforms the message using a XSLT template using Saxon.

| xref:yammer-component.adoc[Yammer] (camel-yammer) | 2.12 | The yammer component allows you to interact with the Yammer enterprise social network.

| xref:zendesk-component.adoc[Zendesk] (camel-zendesk) | 2.19 | Allows producing messages to manage Zendesk ticket, user, organization, etc.

| xref:zookeeper-component.adoc[ZooKeeper] (camel-zookeeper) | 2.9 | The zookeeper component allows interaction with a ZooKeeper cluster.

| xref:zookeeper-master-component.adoc[ZooKeeper Master] (camel-zookeeper-master) | 2.19 | Represents an endpoint which only becomes active when it obtains the master lock

|===
// components: END

== Data Formats

// dataformats: START
Number of Data Formats: 45 in 37 JAR artifacts (0 deprecated)

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

| xref:any23-dataformat.adoc[Any23] (camel-any23) | 3.0 | Any23 data format is used for parsing data to RDF.

| xref:asn1-dataformat.adoc[ASN.1 File] (camel-asn1) | 2.20 | The ASN.1 data format is used for file transfer with telecommunications protocols.

| xref:avro-dataformat.adoc[Avro] (camel-avro) | 2.14 | The Avro data format is used for serialization and deserialization of messages using Apache Avro binary dataformat.

| xref:barcode-dataformat.adoc[Barcode] (camel-barcode) | 2.14 | The Barcode data format is used for creating barccode images (such as QR-Code)

| xref:base64-dataformat.adoc[Base64] (camel-base64) | 2.11 | The Base64 data format is used for base64 encoding and decoding.

| xref:beanio-dataformat.adoc[BeanIO] (camel-beanio) | 2.10 | The BeanIO data format is used for working with flat payloads (such as CSV, delimited, or fixed length formats).

| xref:bindy-dataformat.adoc[Bindy CSV] (camel-bindy) | 2.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| xref:bindy-dataformat.adoc[Bindy Fixed Length] (camel-bindy) | 2.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| xref:bindy-dataformat.adoc[Bindy Key Value Pair] (camel-bindy) | 2.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| xref:cbor-dataformat.adoc[CBOR] (camel-cbor) | 3.0 | CBOR data format is used for unmarshal a CBOR payload to POJO or to marshal POJO back to CBOR payload.

| xref:crypto-dataformat.adoc[Crypto (Java Cryptographic Extension)] (camel-crypto) | 2.3 | Crypto data format is used for encrypting and decrypting of messages using Java Cryptographic Extension.

| xref:csv-dataformat.adoc[CSV] (camel-csv) | 1.3 | The CSV data format is used for handling CSV payloads.

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

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

| xref:flatpack-dataformat.adoc[Flatpack] (camel-flatpack) | 2.1 | The Flatpack data format is used for working with flat payloads (such as CSV, delimited, or fixed length formats).

| xref:grok-dataformat.adoc[Grok] (camel-grok) | 3.0 | The Grok data format is used for unmarshalling unstructured data to objects using Logstash based Grok patterns.

| xref:gzipdeflater-dataformat.adoc[GZip Deflater] (camel-zip-deflater) | 2.0 | The GZip data format is a message compression and de-compression format (which works with the popular gzip/gunzip tools).

| xref:hl7-dataformat.adoc[HL7] (camel-hl7) | 2.0 | The HL7 data format can be used to marshal or unmarshal HL7 (Health Care) model objects.

| xref:ical-dataformat.adoc[iCal] (camel-ical) | 2.12 | The iCal dataformat is used for working with iCalendar messages.

| xref:jacksonxml-dataformat.adoc[JacksonXML] (camel-jacksonxml) | 2.16 | JacksonXML data format is used for unmarshal a XML payload to POJO or to marshal POJO back to XML payload.

| xref:jaxb-dataformat.adoc[JAXB] (camel-jaxb) | 1.0 | JAXB data format uses the JAXB2 XML marshalling standard to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.

| xref:json-fastjson-dataformat.adoc[JSon Fastjson] (camel-fastjson) | 2.20 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| xref:json-gson-dataformat.adoc[JSon GSon] (camel-gson) | 2.10 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| xref:json-jackson-dataformat.adoc[JSon Jackson] (camel-jackson) | 2.0 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| xref:json-johnzon-dataformat.adoc[JSon Johnzon] (camel-johnzon) | 2.18 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| xref:json-xstream-dataformat.adoc[JSon XStream] (camel-xstream) | 2.0 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| xref:jsonApi-dataformat.adoc[JSonApi] (camel-jsonapi) | 3.0 | JSonApi data format is used for marshal and unmarshal Json API object.

| xref:lzf-dataformat.adoc[LZF Deflate Compression] (camel-lzf) | 2.17 | The LZF data format is a message compression and de-compression format (uses the LZF deflate algorithm).

| xref:mime-multipart-dataformat.adoc[MIME Multipart] (camel-mail) | 2.17 | The MIME Multipart data format is used for marshalling Camel messages with attachments into MIME-Multipart message, and vise-versa.

| xref:pgp-dataformat.adoc[PGP] (camel-crypto) | 2.9 | PGP data format is used for encrypting and decrypting of messages using Java Cryptographic Extension and PGP.

| xref:protobuf-dataformat.adoc[Protobuf] (camel-protobuf) | 2.2 | The Protobuf data format is used for serializing between Java objects and the Google Protobuf protocol.

| xref:rss-dataformat.adoc[RSS] (camel-rss) | 2.1 | RSS data format is used for working with RSS sync feed Java Objects and transforming to XML and vice-versa.

| xref:soapjaxb-dataformat.adoc[SOAP] (camel-soap) | 2.3 | SOAP is a data format which uses JAXB2 and JAX-WS annotations to marshal and unmarshal SOAP payloads.

| xref:syslog-dataformat.adoc[Syslog] (camel-syslog) | 2.6 | The Syslog dataformat is used for working with RFC3164 and RFC5424 messages (logging and monitoring).

| xref:tarfile-dataformat.adoc[Tar File] (camel-tarfile) | 2.16 | The Tar File data format is a message compression and de-compression format of tar files.

| xref:thrift-dataformat.adoc[Thrift] (camel-thrift) | 2.20 | The Thrift data format is used for serialization and deserialization of messages using Apache Thrift binary dataformat.

| xref:tidyMarkup-dataformat.adoc[TidyMarkup] (camel-tagsoup) | 2.0 | TidyMarkup data format is used for parsing HTML and return it as pretty well-formed HTML.

| xref:univocity-csv-dataformat.adoc[uniVocity CSV] (camel-univocity-parsers) | 2.15 | The uniVocity CSV data format is used for working with CSV (Comma Separated Values) flat payloads.

| xref:univocity-fixed-dataformat.adoc[uniVocity Fixed Length] (camel-univocity-parsers) | 2.15 | The uniVocity Fixed Length data format is used for working with fixed length flat payloads.

| xref:univocity-tsv-dataformat.adoc[uniVocity TSV] (camel-univocity-parsers) | 2.15 | The uniVocity TSV data format is used for working with TSV (Tabular Separated Values) flat payloads.

| xref:secureXML-dataformat.adoc[XML Security] (camel-xmlsecurity) | 2.0 | The XML Security data format facilitates encryption and decryption of XML payloads.

| xref:xstream-dataformat.adoc[XStream] (camel-xstream) | 1.3 | XSTream data format is used for unmarshal a XML payload to POJO or to marshal POJO back to XML payload.

| xref:yaml-snakeyaml-dataformat.adoc[YAML SnakeYAML] (camel-snakeyaml) | 2.17 | YAML is a data format to marshal and unmarshal Java objects to and from YAML.

| xref:zipdeflater-dataformat.adoc[Zip Deflate Compression] (camel-zip-deflater) | 2.12 | Zip Deflate Compression data format is a message compression and de-compression format (not zip files).

| xref:zipfile-dataformat.adoc[Zip File] (camel-zipfile) | 2.11 | The Zip File data format is a message compression and de-compression format of zip files.
|===
// dataformats: END

== Expression Languages

// languages: START
Number of Languages: 17 in 11 JAR artifacts (0 deprecated)

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

| xref:bean-language.adoc[Bean method] (camel-bean) | 1.3 | To use a Java bean (aka method call) in Camel expressions or predicates.

| xref:constant-language.adoc[Constant] (camel-base) | 1.5 | To use a constant value in Camel expressions or predicates.

| xref:exchangeProperty-language.adoc[ExchangeProperty] (camel-base) | 2.0 | To use a Camel Exchange property in expressions or predicates.

| xref:file-language.adoc[File] (camel-base) | 1.1 | For expressions and predicates using the file/simple language.

| xref:groovy-language.adoc[Groovy] (camel-groovy) | 1.3 | To use Groovy scripts in Camel expressions or predicates.

| xref:header-language.adoc[Header] (camel-base) | 1.5 | To use a Camel Message header in expressions or predicates.

| xref:hl7terser-language.adoc[HL7 Terser] (camel-hl7) | 2.11 | To use HL7 terser scripts in Camel expressions or predicates.

| xref:jsonpath-language.adoc[JsonPath] (camel-jsonpath) | 2.13 | To use JsonPath in Camel expressions or predicates.

| xref:mvel-language.adoc[MVEL] (camel-mvel) | 2.0 | To use MVEL scripts in Camel expressions or predicates.

| xref:ognl-language.adoc[OGNL] (camel-ognl) | 1.1 | To use OGNL scripts in Camel expressions or predicates.

| xref:ref-language.adoc[Ref] (camel-base) | 2.8 | Reference to an existing Camel expression or predicate, which is looked up from the Camel registry.

| xref:simple-language.adoc[Simple] (camel-base) | 1.1 | To use Camels built-in Simple language in Camel expressions or predicates.

| xref:spel-language.adoc[SpEL] (camel-spring) | 2.7 | To use Spring Expression Language (SpEL) in Camel expressions or predicates.

| xref:tokenize-language.adoc[Tokenize] (camel-base) | 2.0 | To use Camel message body or header with a tokenizer in Camel expressions or predicates.

| xref:xtokenize-language.adoc[XML Tokenize] (camel-jaxp) | 2.14 | To use Camel message body or header with a XML tokenizer in Camel expressions or predicates.

| xref:xpath-language.adoc[XPath] (camel-xpath) | 1.1 | To use XPath (XML) in Camel expressions or predicates.

| xref:xquery-language.adoc[XQuery] (camel-saxon) | 1.0 | To use XQuery (XML) in Camel expressions or predicates.
|===
// languages: END

== Miscellaneous Components

// others: START
Number of Miscellaneous Components: 39 in 39 JAR artifacts (0 deprecated)

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

| xref:attachments.adoc[Attachments] (camel-attachments) | 3.0 | Java Attachments support for Camel Message

| xref:aws-xray.adoc[AWS XRay] (camel-aws-xray) | 2.21 | Distributed tracing using AWS XRay

| xref:blueprint.adoc[Blueprint] (camel-blueprint) | 2.4 | Using Camel with OSGi Blueprint

| xref:cdi.adoc[CDI] (camel-cdi) | 2.10 | Using Camel with CDI

| xref:cxf-transport.adoc[CXF Transport] (camel-cxf-transport) | 2.8 | Camel Transport for Apache CXF

| xref:hystrix.adoc[Hystrix] (camel-hystrix) | 2.18 | Circuit Breaker EIP using Netflix Hystrix

| xref:jasypt.adoc[Jasypt] (camel-jasypt) | 2.5 | Security using Jasypt

| xref:kura.adoc[Kura] (camel-kura) | 2.15 | Using Camel with Eclipse Kura (OSGi)

| xref:leveldb.adoc[LevelDB] (camel-leveldb) | 2.10 | Using LevelDB as persistent EIP store

| xref:lra.adoc[LRA] (camel-lra) | 2.21 | Camel saga binding for Long-Running-Action framework

| xref:microprofile-config.adoc[Microprofile Config] (camel-microprofile-config) | 3.0 | Bridging Eclipse MicroProfile Config with Camel properties

| xref:microprofile-health.adoc[Microprofile Health] (camel-microprofile-health) | 3.0 | Bridging Eclipse MicroProfile Health with Camel health checks

| xref:opentracing.adoc[OpenTracing] (camel-opentracing) | 2.19 | Distributed tracing using OpenTracing

| xref:reactive-executor-vertx.adoc[Reactive Executor Vert.x] (camel-reactive-executor-vertx) | 3.0 | Reactive Executor for camel-core using Vert.x

| xref:reactor.adoc[Reactor] (camel-reactor) | 2.20 | Reactor based back-end for Camel's reactive streams component

| xref:resilience4j.adoc[Resilience4j] (camel-resilience4j) | 3.0 | Circuit Breaker EIP using Resilience4j

| xref:ribbon.adoc[Ribbon] (camel-ribbon) | 2.18 | Using Netflix Ribbon for client side load balancing

| xref:rxjava.adoc[RxJava] (camel-rxjava) | 2.22 | RxJava based back-end for Camel's reactive streams component

| xref:shiro.adoc[Shiro] (camel-shiro) | 2.5 | Security using Shiro

| xref:spring-boot.adoc[Spring Boot] (camel-spring-boot) | 2.15 | Using Camel with Spring Boot

| xref:spring-cloud.adoc[Spring Cloud] (camel-spring-cloud) | 2.19 | Camel Cloud integration with Spring Cloud

| xref:spring-cloud-consul.adoc[Spring Cloud Consul] (camel-spring-cloud-consul) | 2.19 | Camel Cloud integration with Spring Cloud Consul

| xref:spring-cloud-netflix.adoc[Spring Cloud Netflix] (camel-spring-cloud-netflix) | 2.19 | Camel Cloud integration with Spring Cloud Netflix

| xref:spring-cloud-zookeeper.adoc[Spring Cloud Zookeeper] (camel-spring-cloud-zookeeper) | 2.19 | Camel Cloud integration with Spring Cloud Zookeeper

| xref:spring-javaconfig.adoc[Spring Java Configuration] (camel-spring-javaconfig) | 2.0 | Using Camel with Spring Java Configuration

| xref:spring-security.adoc[Spring Security] (camel-spring-security) | 2.3 | Security using Spring Security

| xref:swagger-java.adoc[Swagger Java] (camel-swagger-java) | 2.16 | Rest-dsl support for using swagger api-doc

| xref:test.adoc[Test] (camel-test) | 2.9 | Camel unit testing

| xref:test-blueprint.adoc[Test Blueprint] (camel-test-blueprint) | 2.10 | Camel unit testing with OSGi Blueprint

| xref:test-cdi.adoc[Test CDI] (camel-test-cdi) | 2.17 | Camel unit testing with CDI

| xref:test-junit5.adoc[Test JUnit5] (camel-test-junit5) | 3.0 | Camel unit testing with JUnit 5

| xref:test-karaf.adoc[Test Karaf] (camel-test-karaf) | 2.18 | Camel integration testing with Apache Karaf

| xref:test-spring.adoc[Test Spring] (camel-test-spring) | 2.10 | Camel unit testing with Spring

| xref:test-spring-junit5.adoc[Test Spring JUnit5] (camel-test-spring-junit5) | 3.0 | Camel unit testing with Spring and JUnit 5

| xref:testcontainers.adoc[Testcontainers] (camel-testcontainers) | 2.22 | Camel support for testcontainers

| xref:testcontainers-junit5.adoc[Testcontainers JUnit5] (camel-testcontainers-junit5) | 3.0 | Camel support for testcontainers with JUnit 5

| xref:testcontainers-spring.adoc[Testcontainers Spring] (camel-testcontainers-spring) | 2.22 | Camel unit testing with Spring and testcontainers

| xref:testcontainers-spring-junit5.adoc[Testcontainers Spring Junit5] (camel-testcontainers-spring-junit5) | 3.0 | Camel unit testing with Spring, testcontainers and JUnit 5

| xref:zipkin.adoc[Zipkin] (camel-zipkin) | 2.18 | Distributed message tracing using Zipkin
|===
// others: END
