enpassant / ickenham   1.5.0

Apache License 2.0 GitHub

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

Scala versions: 2.13 2.12 2.11
Scala Native versions: 0.3

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