Skip to content

Collected benchmarks for templating crates written in Rust

Notifications You must be signed in to change notification settings

sunng87/template-benchmarks-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust template engine benchmarks

This repo tries to assess Rust template engine performance. Following the download ratings from crates.io, these nine projects are assessed:

  • write!: the std library write! macro
  • Handlebars: Handlebars templating implemented in Rust
  • Tera: template engine based on Jinja2/Django templates
  • Liquid: the liquid templating language for Rust
  • Askama: type-safe, compiled Jinja-like templates for Rust
  • horrorshow: a templating library written in rust macros
  • ructe: Rust Compiled Templates, efficient type-safe web page templates
  • fomat: alternative syntax for print/write/format-like macros with a small templating language
  • markup: A blazing fast, type-safe template engine for Rust.

Results

These results are from a server with an Intel i9-9880H CPU. Your mileage may vary.

Updated as of 2020-07-01, as a violin plot generated by Criterion:

Big table violin plot Teams violin plot

Numbers, as output by Criterion:

Big table/Askama        time:   [475.76 us 476.61 us 477.54 us]
Big table/fomat         time:   [276.09 us 276.77 us 277.77 us]
Big table/Handlebars    time:   [14.581 ms 14.607 ms 14.634 ms]
Big table/Horrorshow    time:   [332.64 us 333.55 us 334.66 us]
Big table/Liquid        time:   [11.844 ms 11.869 ms 11.893 ms]
Big table/Markup        time:   [270.76 us 271.65 us 272.82 us]
Big table/Ructe         time:   [423.96 us 424.89 us 425.98 us]
Big table/Sailfish      time:   [34.931 us 35.098 us 35.312 us]
Big table/Tera          time:   [3.0856 ms 3.1014 ms 3.1163 ms]
Big table/Yarte         time:   [230.10 us 230.58 us 231.23 us]
Big table/write         time:   [345.93 us 346.52 us 347.20 us]

Teams/Askama            time:   [869.47 ns 880.35 ns 891.82 ns]
Teams/fomat             time:   [501.28 ns 504.14 ns 507.05 ns]
Teams/Handlebars        time:   [16.864 us 16.930 us 17.011 us]
Teams/Horrorshow        time:   [553.18 ns 555.89 ns 558.89 ns]
Teams/Liquid            time:   [11.284 us 11.312 us 11.344 us]
Teams/Markup            time:   [410.65 ns 413.97 ns 418.25 ns]
Teams/Ructe             time:   [1.1210 us 1.1394 us 1.1597 us]
Teams/Sailfish          time:   [137.46 ns 138.11 ns 138.90 ns]
Teams/Tera              time:   [8.3290 us 8.3913 us 8.4978 us]
Teams/Yarte             time:   [363.97 ns 366.07 ns 368.53 ns]
Teams/write             time:   [689.05 ns 694.60 ns 701.33 ns]

Running the benchmarks

$ cargo bench

Plots will be rendered if gnuplot is installed and will be available in the target/criterion folder.

About

Collected benchmarks for templating crates written in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 94.7%
  • HTML 5.3%