djc / Template Benchmarks Rs
Collected benchmarks for templating crates written in Rust
Stars: ✭ 104
Programming Languages
rust
11053 projects
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.
- maud: A Compile-time HTML template engine for Rust.
- sailfish: Simple, small, and extremely fast template engine for Rust
Results
These results are from 2020-12-22 (rustc 1.48.0), running on an Intel Xeon W-3275M CPU. Your mileage may vary.
As a violin plot generated by Criterion:
Numbers, as output by Criterion:
Big table/Askama time: [484.58 us 486.44 us 488.37 us]
Big table/fomat time: [262.20 us 263.10 us 264.04 us]
Big table/Handlebars time: [12.691 ms 12.733 ms 12.776 ms]
Big table/Horrorshow time: [273.87 us 275.10 us 276.42 us]
Big table/Liquid time: [15.379 ms 15.432 ms 15.490 ms]
Big table/Markup time: [91.338 us 91.795 us 92.267 us]
Big table/Maud time: [271.04 us 271.96 us 272.93 us]
Big table/Ructe time: [387.36 us 389.06 us 390.86 us]
Big table/Sailfish time: [30.327 us 30.451 us 30.591 us]
Big table/Tera time: [3.3310 ms 3.3435 ms 3.3555 ms]
Big table/write time: [337.27 us 339.34 us 341.40 us]
Teams/Askama time: [856.63 ns 858.46 ns 860.38 ns]
Teams/fomat time: [484.51 ns 489.05 ns 493.23 ns]
Teams/Handlebars time: [11.853 us 11.907 us 11.961 us]
Teams/Horrorshow time: [487.49 ns 490.78 ns 494.48 ns]
Teams/Liquid time: [12.125 us 12.174 us 12.227 us]
Teams/Markup time: [225.04 ns 227.59 ns 229.97 ns]
Teams/Maud time: [410.93 ns 413.28 ns 415.67 ns]
Teams/Ructe time: [864.70 ns 874.37 ns 884.52 ns]
Teams/Sailfish time: [144.05 ns 145.25 ns 146.72 ns]
Teams/Tera time: [7.8097 us 7.8556 us 7.9058 us]
Teams/write time: [697.02 ns 702.11 ns 708.27 ns]
Running the benchmarks
$ cargo bench
Plots will be rendered if gnuplot
is installed and will be available in the
target/criterion
folder.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].