[[DSL-DSL]]
= DSL

Camel uses a Java _Domain Specific Language_ or DSL for creating
xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise Integration
Patterns] or Routes in a variety of domain-specific
languages (DSL) as listed below.

* xref:java-dsl.adoc[Java DSL] - A Java based DSL using the fluent
builder style.
* xref:components::spring-summary.adoc[Spring XML] - A XML based DSL in Spring XML files
* xref:using-osgi-blueprint-with-camel.adoc[Blueprint XML] - A XML based
DSL in OSGi Blueprint XML files
* xref:rest-dsl.adoc[Rest DSL] - A DSL to define REST services using a
REST style in either Java or XML.
* xref:bean-integration.adoc[Annotation DSL] - Use annotations in Java
beans.
* xref:components:others:yaml-dsl.adoc[Yaml DSL] for creating routes using YAML format.


The main entry points for the DSL are:

* xref:camelcontext.adoc[CamelContext] for creating a Camel routing
rulebase
* xref:route-builder.adoc[RouteBuilder] for creating routes using the Java DSL style.
* xref:lambda-route-builder.adoc[LambdaRouteBuilder] for creating routes using Java lambda style.
* xref:Endpoint-dsl.adoc[Endpoint DSL] for creating routes using type-safe Camel endpoints.
* xref:route-template.adoc[Route Template] for creating reusable route templates.
