This project is a benchmark designed to evaluate the performance of various JavaScript template engines. It allows developers to compare rendering performance of several popular template engines in various scenarios.
The tests were carried out on:
- Node v22.20.0
- MacBook Pro M3 Pro
Engines tested: pug, igodust, squirrelly, handlebars, hogan, mustache, eta, dustjs, nunjucks, ejs, twig
geometric mean of (fastest / this engine) across all templates, on a 0–100 scale
pug v3.0.4 ██████████████████████████████████ 78/100
igodust v6.0.1 ████████████████████████████ 63/100
squirrelly v9.1.0 ███████████████████████████ 61/100
handlebars v4.7.9 ██████████████ 32/100
hogan v3.0.2 ██████████████ 31/100
mustache v4.2.0 ████████████ 27/100
eta v3.5.0 ███████████ 26/100
dustjs v3.0.1 ███████████ 24/100
nunjucks v3.2.4 ███████ 15/100
ejs v5.0.2 █████ 12/100
twig v1.17.1 ███ 6/100
igodust █ 477ms
eta ██ 555ms
squirrelly ██████ 733ms
pug ██████ 736ms
handlebars ███████████████ 1527ms
hogan ██████████████████ 1976ms
dustjs ████████████████████ 2241ms
mustache █████████████████████ 2314ms
nunjucks ██████████████████████████████ 4946ms
ejs █████████████████████████████████ 6029ms
twig ████████████████████████████████████████████ 14011ms
pug █ 4ms
igodust ████████ 8ms
squirrelly ████████ 8ms
dustjs ████████████████████ 19ms
nunjucks ██████████████████████ 22ms
ejs ███████████████████████ 24ms
eta █████████████████████████ 27ms
twig ████████████████████████████████████████████ 105ms
igodust █ 41ms
squirrelly █ 42ms
handlebars ██████ 50ms
eta ████████████ 62ms
mustache ███████████████ 69ms
nunjucks ████████████████ 70ms
hogan █████████████████ 74ms
dustjs ██████████████████████ 86ms
ejs ██████████████████████████ 101ms
twig ████████████████████████████████ 122ms
pug ████████████████████████████████████████████ 184ms
pug █ 5ms
squirrelly ████ 7ms
igodust ██████ 8ms
hogan █████████████ 14ms
handlebars ███████████████ 17ms
mustache ████████████████ 18ms
dustjs █████████████████████ 25ms
eta ██████████████████████ 28ms
nunjucks ██████████████████████████ 38ms
ejs ███████████████████████████ 40ms
twig ████████████████████████████████████████████ 137ms
igodust █ 45ms
pug █ 49ms
squirrelly ███ 55ms
eta █████ 65ms
handlebars ██████████████ 134ms
hogan ██████████████████ 179ms
dustjs ███████████████████ 192ms
mustache ████████████████████ 210ms
nunjucks ███████████████████████████████ 462ms
ejs █████████████████████████████████ 536ms
twig ████████████████████████████████████████████ 1262ms
pug █ 2ms
squirrelly █████████████████ 6ms
hogan ███████████████████ 7ms
igodust ███████████████████ 7ms
mustache ████████████████████████ 9ms
dustjs ██████████████████████████ 10ms
nunjucks ██████████████████████████ 10ms
handlebars ███████████████████████████ 11ms
ejs ██████████████████████████████████ 16ms
twig ██████████████████████████████████ 16ms
eta ████████████████████████████████████████████ 27ms
pug █ 5ms
igodust ████████ 9ms
squirrelly ████████ 9ms
handlebars ██████████████████ 19ms
hogan ██████████████████ 19ms
mustache ███████████████████ 20ms
dustjs ████████████████████ 22ms
eta ████████████████████████ 30ms
nunjucks ████████████████████████████████ 51ms
ejs ██████████████████████████████████ 59ms
twig ████████████████████████████████████████████ 114ms
pug █ 5ms
squirrelly ████████ 9ms
igodust █████████ 10ms
handlebars █████████████████ 17ms
hogan █████████████████ 17ms
dustjs ████████████████████ 21ms
mustache ████████████████████ 21ms
eta █████████████████████████ 29ms
nunjucks ████████████████████████████████ 48ms
ejs ██████████████████████████████████ 53ms
twig ████████████████████████████████████████████ 105ms
1. Clone this repo on your machine:
git clone https://github.com/itsarnaud/templating-engine-bench.git2. Install dependencies:
npm install3. Launch the benchmark by executing:
node main.js4. Results: once the benchmark is completed, the results above are automatically updated.