[[HowdoesCamelcomparetoMule-HowdoesCamelcomparetoMule]]
= How does Camel compare to Mule?

This FAQ entry was written when Mule 1.x and 2.x existed. It doesn't
cater for how Mule may go in Mule 3.x.

I guess from 30,000 feet they're kinda
xref:why-the-name-camel.adoc[similar beasts]; they're both kinds of
routing/mediation engines. The main differences are as follows:

* Camel uses a Java xref:ROOT:dsl.adoc[Domain Specific Language] in addition
  to Spring XML for configuring the routing rules and providing
  xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise Integration
  Patterns]
* Camel's API is smaller & cleaner (IMHO) and is closely aligned with
  the APIs of JBI, xref:components::cxf-component.adoc[CXF] and
  xref:components::jms-component.adoc[JMS]; based around message exchanges (with in and optional
  out messages) which more closely maps to REST, WS, WSDL & JBI than the
  UMO model Mule is based on
* Camel allows the underlying transport details to be easily exposed
  (e.g. the `JmsExchange`, `JbiExchange`, `HttpExchange` objects expose all the
  underlying transport information & behaviour if its required). See
  xref:how-does-the-camel-api-compare-to.adoc[How does the Camel API
  compare to]
* Camel supports an implicit xref:ROOT:type-converter.adoc[Type Converter] in
  the core API to make it simpler to connect components together requiring
  different types of payload & headers
* Camel uses the https://apache.org/licenses/LICENSE-2.0[Apache 2 License] rather than Mule's more restrictive commercial license
