blob: 38dfb73c26e465a0114d9380b0f59c0fb2e37611 [file] [log] [blame]
[[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