:toc: macro
:toclevels: 3

= :camel: + :cloud: = Apache Camel K

image:https://github.com/apache/camel-k/workflows/build/badge.svg["Build", link="https://github.com/apache/camel-k/actions/workflows/build.yml"]
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://goreportcard.com/badge/github.com/apache/camel-k["Go Report Card", link="https://goreportcard.com/report/github.com/apache/camel-k"]
image:https://godoc.org/github.com/apache/camel-k?status.svg["GoDoc", link="https://godoc.org/github.com/apache/camel-k"]
image:https://github.com/apache/camel-k/workflows/kubernetes/badge.svg["Kubernetes", link="https://github.com/apache/camel-k/actions/workflows/common.yml"]
image:https://github.com/apache/camel-k/workflows/knative/badge.svg["Knative", link="https://github.com/apache/camel-k/actions/workflows/knative.yml"]
image:https://github.com/apache/camel-k/actions/workflows/openshift.yml/badge.svg["OpenShift", link="https://github.com/apache/camel-k/actions/workflows/openshift.yml"]
image:https://img.shields.io/badge/zulip-join_chat-brightgreen.svg["Chat on Zulip", link="https://camel.zulipchat.com"]

Apache Camel K is a lightweight integration framework built from **Apache Camel** that runs natively on Kubernetes and is specifically designed for serverless and microservice architectures. Users of `Camel K` can instantly run integration code written in Camel DSL on their preferred **Cloud** provider.

https://camel.apache.org/camel-k/next/[How does it work?]

== :gear: Installation

Camel K allows you to run integrations directly on a `Kubernetes` or `OpenShift` cluster. To use it, you need to be connected to a cloud environment or to a local cluster created for development purposes.

https://camel.apache.org/camel-k/next/installation/installation.html[Installation procedure.]

== :arrow_forward: Running an Integration

You can use Camel DSL to define your `Integration`. Just save it in a file and use `kamel` command line interface (https://github.com/apache/camel-k/releases/latest[download latest release]) to run it. As an example, just try running:

[source,groovy]
.hello.groovy
----
from('timer:tick?period=3000')
  .setBody().constant('Hello world from Camel K')
  .to('log:info')
----
----
kamel run hello.groovy
----

You can even run your integrations in a `dev` mode. Change the code and see the **changes automatically applied (instantly)** to the remote integration pod! We have provided link:/examples[more examples] that you can use to inspire your next `Integration` development.

https://camel.apache.org/camel-k/next/running/running.html[See more details.]

== :camel: All the power from Apache Camel components

You can use any of the Apache Camel components available. The related dependencies will be resolved automatically.

Discover more about https://camel.apache.org/camel-k/next/configuration/dependencies.html[dependencies and components].

== :coffee: Not Just Java

Camel K supports multiple languages for writing integrations.

See all the https://camel.apache.org/camel-k/next/languages/languages.html[languages available].

== :checkered_flag: Traits

The details of how the integration is mapped into Kubernetes resources can be *customized using traits*.

More information is provided in the official documentation https://camel.apache.org/camel-k/next/traits/traits.html[traits section].

== :cloud: Engineered thinking on Cloud Native

Since the inception of the project, our goal was to bring `Apache Camel` to the cloud.

See the https://camel.apache.org/camel-k/next/architecture/architecture.html[software architecture defails].

== :heart: Contributing

We love contributions and we want to make Camel K great!

Contributing is easy, just take a look at our https://camel.apache.org/camel-k/next/contributing/developers.html[developer's guide].

== :tickets: Licensing

This software is licensed under the terms you may find in the file named link:LICENSE[LICENSE] in this directory.
