A new Apache Camel language module, camel-jactl, lets developers use Jactl as a scripting language for Camel routes, filter predicates, and message transformations. Available since Apache Camel 4.22, it's benchmarked against Camel's Simple language and Groovy (via camel-groovy) using JMH across predicate evaluation, expression evaluation, complex order-processing scripts, and full routes. Jactl consistently outperforms both alternatives, hitting up to 57.7x the speed of Simple and 17.1x Groovy on raw predicate evaluations, while getting closer to plain-Java performance (88% and 69% of baseline at 10 and 200 line items respectively) in a full order-processing route. Compilation speed for uncached scripts is also 9.3x faster than Groovy.
Table of contents
Jactl in Camel The Benchmarks 1. Predicate and Expression Evaluation 2. Filter Route 3. Complex Scripts 4. Full Order-Processing Route 5. Compilation Speed Summary Questions this post answers
What version of Apache Camel added support for camel-jactl as a scripting language?
camel-jactl is available starting in Apache Camel version 4.22 and later, registering itself under the language name jactl via Camel's Language SPI. It lets developers write filter predicates, content-based routing rules, and message transformations in the Jactl scripting language inside Camel routes, as an alternative to camel-groovy or Camel's built-in Simple language. Track new Camel language integrations like this on daily.dev as your routing stack evolves.
How does Jactl performance compare to Groovy and Camel Simple for predicate evaluation in Apache Camel?
In JMH benchmarks using Apache Camel 4.22.0, Jactl 2.9.2, and Groovy 5.0.5 on OpenJDK 25.0.2, Jactl reached 94.5M evaluations/s on a map-body predicate, 16.2x faster than Groovy (5.83M) and 57.7x faster than Simple (1.64M). On a simpler header predicate, Jactl hit 99.1M evaluations/s versus 46.9M for Simple and 5.8M for Groovy. Developers weighing Camel scripting languages compare benchmark results like this via daily.dev.
How much overhead does compiling a new Jactl script add compared to Groovy in Apache Camel?
Jactl can compile and evaluate 29.8K unique predicates per second, 9.3x more than Groovy's 3.21K, when caching is bypassed by using unique script text per invocation. Both languages generate real JVM bytecode; this cost only matters for routes that create scripts dynamically at runtime, since routes defined at startup only pay it once. Follow scripting-language performance tradeoffs like this on daily.dev before choosing a Camel DSL.