[[DSL-DSL]]
DSL
~~~

Camel uses a Java _Domain Specific Language_ or DSL for creating
link:enterprise-integration-patterns.html[Enterprise Integration
Patterns] or Routes in a variety of domain-specific
languages (DSL) as listed below.

* Java DSL - A Java based DSL using the fluent
builder style.
* Spring XML - A XML based DSL in Spring XML files
* Blueprint XML - A XML based
DSL in OSGi Blueprint XML files
* Rest DSL - A DSL to define REST services using a
REST style in either Java or XML.
* Groovy DSL - A Groovy based DSL using Groovy
programming language
* Scala DSL - A Scala based DSL using Scala
programming language
* Annotation DSL - Use annotations in Java
beans.
* https://github.com/koolio/kool/tree/master/kool-camel[Kotlin DSL] -
*Work in progress* - Currently developed outside ASF, but will we
included later in Camel when Kotlin and the DSL is ready.

The main entry points for the DSL are

* CamelContext for creating a Camel routing
rulebase
* RouteBuilder for creating a collection of
routes using the routing DSL

[[DSL-SeeAlso]]
See Also
^^^^^^^^

For more examples of the DSL in action see

* link:enterprise-integration-patterns.html[Enterprise Integration
Patterns]
* Examples
* Routes

