enpassant / ickenham

Ickenham is fast and concise template system, largely compatible with Handlebars and Mustache templates.

GitHub

Ickenham

Build Status Coverage Status

Ickenham is fast and concise template system, largely compatible with Handlebars and Mustache templates.

Installation

You can add the Ickenham as a dependency in following ways.

You can find available versions here.

SBT users

"com.github.enpassant" %% "ickenham" % "1.4.0"

Maven users

<dependency>
  <groupId>com.github.enpassant</groupId>
  <artifactId>ickenham_${scala.version}</artifactId>
  <version>1.4.0</version>
</dependency>

Benchmarks 2018

Template engines benchmarked with the project Spring compareing template engine.

In case you want to benchmark the different template engines I would recommend using wrk HTTP benchmarking tool.

wrk -c 100 -d 10 -t 10 http://localhost:8080/ickenham

This runs benchmark for 10 seconds, using 10 threads, and keeping 100 HTTP connections open.

These tests were done on a local machine with the following specs:

Ubuntu 16.04 LTS
2,6-3,6 GHz Intel Core i7
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Apache Tomcat 7.0.72 with 512M RAM

Results in order (best to worst): 0. Empty page (without any template): 40.000 req/s

  1. Mustache: 34.500 req/s
  2. Velocity: 32.000 req/s
  3. Pebble: 30.000 req/s
  4. Freemarker: 29.000 req/s
  5. JSP: 27.000 req/s
  6. Ickenham (Scala, Handlebars syntax): 26.500 req/s
  7. Jtwig: 25.000 req/s
  8. Chunk: 20.500 req/s
  9. Thymeleaf: 20.500 req/s
  10. Handlebars: 19.000 req/s
  11. Jade: 16.000 req/s (150-200 error)
  12. Scalate (Scala): 10.000 req/s