├── .gitignore
├── LICENSE.txt
├── README.md
├── benchmarks.md
├── gen
├── README.md.jinja
├── generate_readme.py
├── requirements.txt
└── template-engines.yaml
└── icon.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # IntelliJ
2 | .idea
3 |
4 | # environment
5 | .env
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Shashank Shailabh
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Awesome Template Engine
8 |
9 |
10 |
15 |
16 | ---
17 |
18 | A curated list of template engines across all programming languages with repository activity stats.
19 |
20 | # Template Engines by Language
21 |
22 | ## C#
23 | Summary of (8 template engines)
24 |
25 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
26 | |--------|-------------|-------|-------|-------------|----------------|--------|
27 | | [DotLiquid](https://github.com/dotliquid/dotliquid) | A .Net port of the popular Liquid templating language written in Ruby | 1070⭐ | 296🍴 | 2025-03-25 | v2.2.508 (2021-08-05) | 🟢 |
28 | | [Fluid](https://github.com/sebastienros/fluid) | An open-source .NET template engine based on the Liquid template language | 1536⭐ | 182🍴 | 2025-04-17 | v2.22.0 (2025-04-17) | 🟢 |
29 | | [Handlebars.Net](https://github.com/Handlebars-Net/Handlebars.Net) | A port of Handlebars.js to .NET that compiles templates directly to IL bytecode | 1320⭐ | 224🍴 | 2024-04-03 | 2.1.6 (2024-04-03) | 🔴 |
30 | | [MJML.Net](https://github.com/SebastianStehle/mjml-net) | A fast port of MJML 4 to .NET 6 & 7 | 184⭐ | 15🍴 | 2025-04-03 | N/A | 🟢 |
31 | | [RazorLight](https://github.com/toddams/RazorLight) | Template engine for building templates from Files outside of ASP.NET MVC | 1568⭐ | 262🍴 | 2024-07-06 | v2.3.1 (2023-01-16) | 🟢 |
32 | | [Scriban](https://github.com/scriban/scriban) | Fast and lightweight scripting language for .NET with liquid compatibility mode | 3435⭐ | 371🍴 | 2025-04-18 | 6.2.1 (2025-04-18) | 🟢 |
33 | | [Spark](https://github.com/SparkViewEngine/spark) | View engine for ASP.NET MVC with syntax inspired by Jade/Haml | 257⭐ | 86🍴 | 2025-01-03 | v1.8.1.0 (2015-06-10) | 🟢 |
34 | | [Stubble](https://github.com/StubbleOrg/Stubble) | Trimmed down {{mustache}} templates in .NET | 423⭐ | 59🍴 | 2022-09-23 | v1.10.8 (2022-08-29) | 🔴 |
35 |
36 | ## C++
37 | Summary of (4 template engines)
38 |
39 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
40 | |--------|-------------|-------|-------|-------------|----------------|--------|
41 | | [Inja](https://github.com/pantor/inja) | Template engine inspired by Jinja for modern C++ | 1770⭐ | 220🍴 | 2025-04-13 | v3.4.0 (2023-01-29) | 🟢 |
42 | | [Jinja2Cpp](https://github.com/jinja2cpp/Jinja2Cpp) | C++ implementation of Python Jinja2 template engine | 534⭐ | 96🍴 | 2024-11-22 | 1.3.2 (2024-06-23) | 🟢 |
43 | | [mstch](https://github.com/no1msd/mstch) | Complete implementation of mustache templates in C++ | 571⭐ | 87🍴 | 2016-02-13 | 1.0.2 (2016-02-01) | 🔴 |
44 | | [Qentem](https://github.com/HaniAmmar/Qentem-Engine) | Lightweight template engine for C++/C/Java projects and WASM | 9⭐ | 4🍴 | 2025-03-04 | 2.3.2 (2024-12-21) | 🟢 |
45 |
46 | ## CoffeeScript
47 | Summary of (1 template engines)
48 |
49 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
50 | |--------|-------------|-------|-------|-------------|----------------|--------|
51 | | [DocPad](https://github.com/docpad/docpad) | Streamlined web development using CoffeeScript | 3055⭐ | 239🍴 | 2023-12-19 | v6.83.2 (2020-09-08) | 🔴 |
52 |
53 | ## Go
54 | Summary of (12 template engines)
55 |
56 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
57 | |--------|-------------|-------|-------|-------------|----------------|--------|
58 | | [Ace](https://github.com/yosssi/ace) | HTML template engine inspired by Slim and Jade | 840⭐ | 49🍴 | 2018-06-17 | v0.0.5 (2017-03-07) | 🔴 |
59 | | [Amber](https://github.com/eknkc/amber) | Template engine inspired from HAML and Jade | 918⭐ | 62🍴 | 2017-10-10 | N/A | 🔴 |
60 | | [Ego](https://github.com/benbjohnson/ego) | ERB style templating language that transpiles to Go | 582⭐ | 40🍴 | 2021-07-14 | v0.4.3 (2021-07-14) | 🔴 |
61 | | [GoRazor](https://github.com/sipin/gorazor) | Go port of the Razor view engine | 864⭐ | 91🍴 | 2025-03-28 | v1.2.2 (2019-11-14) | 🟢 |
62 | | [Hero](https://github.com/shiyanhui/hero) | Fast template engine that pre-compiles to Go code | 1571⭐ | 94🍴 | 2020-01-09 | v0.0.2 (2019-08-18) | 🔴 |
63 | | [Jade](https://github.com/Joker/jade) | Implementation of Jade/Pug templates in Go | 360⭐ | 36🍴 | 2023-08-09 | v1.1.3 (2022-02-06) | 🔴 |
64 | | [Jet](https://github.com/CloudyKit/jet) | Fast and dynamic template engine with Django-like syntax | 1309⭐ | 111🍴 | 2025-03-23 | v6.3.1 (2025-02-24) | 🟢 |
65 | | [Mustache.go](https://github.com/hoisie/mustache) | Go implementation of Mustache templates | 1108⭐ | 227🍴 | 2016-08-04 | go.r60 (2012-03-18) | 🔴 |
66 | | [Pongo2](https://github.com/flosch/pongo2) | Django-syntax templating for Go | 2941⭐ | 279🍴 | 2023-04-11 | v6.0.0 (2022-06-24) | 🔴 |
67 | | [QuickTemplate](https://github.com/valyala/quicktemplate) | Fast template engine inspired by Mako | 3191⭐ | 149🍴 | 2024-07-04 | v20160617 (2016-06-10) | 🟢 |
68 | | [Raymond](https://github.com/aymerick/raymond) | Go port of Handlebars.js | 625⭐ | 110🍴 | 2018-03-22 | v2.0.2 (2018-03-22) | 🔴 |
69 | | [Soy](https://github.com/robfig/soy) | Go implementation of Google Closure Templates | 173⭐ | 41🍴 | 2024-03-19 | N/A | 🔴 |
70 |
71 | ## Groovy
72 | Summary of (1 template engines)
73 |
74 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
75 | |--------|-------------|-------|-------|-------------|----------------|--------|
76 | | [Jenkins Templating Engine](https://github.com/jenkinsci/templating-engine-plugin) | A plugin enabling Jenkins pipeline templating and governance, bringing Template Method Design Pattern to pipelines | 172⭐ | 60🍴 | 2025-04-12 | 2.5.4 (2025-04-02) | 🟢 |
77 |
78 | ## Java
79 | Summary of (17 template engines)
80 |
81 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
82 | |--------|-------------|-------|-------|-------------|----------------|--------|
83 | | [Apache FreeMarker](https://github.com/apache/freemarker) | A Java template engine that can be used to generate text output based on templates | 1021⭐ | 271🍴 | 2025-03-11 | v2.3.34 (2024-12-08) | 🟢 |
84 | | [Apache Velocity](https://github.com/apache/velocity-engine) | A Java based template engine | 385⭐ | 133🍴 | 2024-11-04 | velocity-engine-parent-2.0.0 (2016-11-05) | 🟢 |
85 | | [Blade](https://github.com/lets-blade/blade) | A simple open source web framework that helps quickly build web applications | 5860⭐ | 1171🍴 | 2025-02-11 | 2.1.2.RELEASE (2022-05-09) | 🟢 |
86 | | [Closure-Templates](https://github.com/google/closure-templates) | A client and server-side templating system for dynamically building reusable HTML and UI elements | 655⭐ | 193🍴 | 2025-04-18 | release-20160721 (2016-07-21) | 🟢 |
87 | | [Handlebars.java](https://github.com/jknack/handlebars.java) | A Java port of the Handlebars template engine following Mustache template | 1489⭐ | 383🍴 | 2024-07-01 | v4.4.0 (2024-03-07) | 🟢 |
88 | | [HtmlFlow](https://github.com/xmlet/HtmlFlow) | A Java DSL to write typesafe HTML in a fluent style | 164⭐ | 31🍴 | 2025-01-27 | htmlflow-4.3 (2024-01-15) | 🟢 |
89 | | [JinJava](https://github.com/HubSpot/jinjava) | Java-based template engine based on django template syntax, adapted to render jinja templates | 724⭐ | 171🍴 | 2025-03-26 | jinjava-2.7.4 (2024-12-06) | 🟢 |
90 | | [JMustache](https://github.com/samskivert/jmustache) | A Java implementation of Mustache specification template engine | 850⭐ | 129🍴 | 2024-01-12 | jmustache-1.16 (2023-11-30) | 🔴 |
91 | | [JStachio](https://github.com/jstachio/jstachio) | A Mustache compatible type-safe Java templating engine | 289⭐ | 12🍴 | 2025-04-15 | v1.3.7 (2025-03-10) | 🟢 |
92 | | [JTE](https://github.com/casid/jte) | Lightweight template engine for Java and Kotlin with productive and typesafe experience | 928⭐ | 72🍴 | 2025-04-15 | 3.2.0 (2025-03-28) | 🟢 |
93 | | [ManTL](https://github.com/manifold-systems/manifold/tree/master/manifold-deps-parent/manifold-templates) | A lightweight & type-safe template engine integrated with the Java compiler using Manifold | 2523⭐ | 126🍴 | 2025-04-17 | v2023.1.33 (2023-12-18) | 🟢 |
94 | | [Mustache.java](https://github.com/spullara/mustache.java) | A derivative template engine of mustache.js with its own parser written in Java | 1914⭐ | 286🍴 | 2024-09-19 | mustache.java-jdk5-0.8.10 (2013-03-02) | 🟢 |
95 | | [Pebble](https://github.com/PebbleTemplates/pebble) | A template engine inspired from Twig with syntax similar to Jinja featuring template inheritance | 1133⭐ | 171🍴 | 2025-04-01 | 3.2.4 (2025-04-01) | 🟢 |
96 | | [Pug4J](https://github.com/neuland/pug4j) | A Java implementation of the Pug templating language | 68⭐ | 14🍴 | 2025-01-18 | pug4j-2.3.1 (2025-01-10) | 🟢 |
97 | | [Rocker](https://github.com/fizzed/rocker) | An intuitive, tagless syntax template engine with standard Java expressions | 761⭐ | 91🍴 | 2025-01-23 | v2.2.1 (2025-01-22) | 🟢 |
98 | | [Thymeleaf](https://github.com/thymeleaf/thymeleaf) | A server-side Java template engine for both web and standalone environments | 2872⭐ | 510🍴 | 2024-12-16 | thymeleaf-3.1.3.RELEASE (2024-12-09) | 🟢 |
99 | | [Trimou](https://github.com/trimou/trimou) | A Mustache spec implementation with helpers inspired from Handlebars.js | 80⭐ | 18🍴 | 2023-07-10 | 2.5.0.Final (2018-05-31) | 🔴 |
100 |
101 | ## JavaScript
102 | Summary of (20 template engines)
103 |
104 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
105 | |--------|-------------|-------|-------|-------------|----------------|--------|
106 | | [.Dom](https://github.com/wavesoft/dot-dom) | A template engine replicating re-usable component and virtual DOM within 512 bytes | 809⭐ | 45🍴 | 2019-10-30 | v0.3.1 (2019-08-22) | 🔴 |
107 | | [Art-template](https://github.com/aui/art-template) | A fast templating engine that optimizes template rendering speed by scope pre-declared technique | 9867⭐ | 2672🍴 | 2024-12-07 | v4.13.2 (2018-11-13) | 🟢 |
108 | | [Carbone](https://github.com/carboneio/carbone) | A mustache-like template engine and open source document generator | 1448⭐ | 202🍴 | 2025-03-17 | ee-4.22.6 (2024-06-07) | 🟢 |
109 | | [Consolidate.js](https://github.com/tj/consolidate.js) | A library that consolidates most known template engines implemented in JS | 3481⭐ | 355🍴 | 2022-03-14 | v0.16.0 (2020-09-08) | 🔴 |
110 | | [doT](https://github.com/olado/doT) | A fastest JavaScript templating function with emphasis on performance under V8 and nodejs | 5032⭐ | 1019🍴 | 2020-07-26 | v1.1.3 (2020-07-25) | 🔴 |
111 | | [DustJS](https://github.com/linkedin/dustjs) | An asynchronous Javascript templating engine developed by LinkedIn | 2917⭐ | 477🍴 | 2023-07-12 | v3.0.1 (2021-12-29) | 🔴 |
112 | | [ECT](https://github.com/baryshev/ect) | Performance focused JavaScript template engine with embedded CoffeeScript syntax | 622⭐ | 69🍴 | 2014-06-08 | v0.5.9 (2016-04-14) | 🔴 |
113 | | [EJS](https://github.com/mde/ejs) | Embedded JavaScript templates designed to be flexible and easy-to-write | 7889⭐ | 849🍴 | 2025-02-25 | v3.1.10 (2024-04-12) | 🟢 |
114 | | [Handlebars.js](https://github.com/handlebars-lang/handlebars.js) | A template engine extending Mustache templating with additional features | 18200⭐ | 2046🍴 | 2024-09-03 | v4.7.8 (2023-08-01) | 🟢 |
115 | | [Hogan.js](https://github.com/twitter/hogan.js) | A compiler for the Mustache templating language with separate scanning, parsing and code generation phases | 5139⭐ | 427🍴 | 2021-12-13 | v3.0.2 (2014-06-17) | 🔴 |
116 | | [Lodash](https://github.com/lodash/lodash) | A utility library for working with arrays, numbers, objects, strings, and creating composite functions | 60350⭐ | 7064🍴 | 2024-12-12 | 4.0.0 (2016-01-12) | 🟢 |
117 | | [Marko](https://github.com/marko-js/marko) | HTML reimagined as a language for building dynamic and reactive user interfaces | 13558⭐ | 650🍴 | 2025-04-19 | @marko/runtime-tags@6.0.11 (2025-04-19) | 🟢 |
118 | | [MJML](https://github.com/mjmlio/mjml) | A markup language designed to reduce the pain of coding responsive email | 17382⭐ | 969🍴 | 2024-12-03 | v4.15.2 (2024-01-29) | 🟢 |
119 | | [Nunjucks](https://github.com/mozilla/nunjucks) | A templating engine heavily inspired from Jinja2 with template inheritance & asynchronous control | 8676⭐ | 645🍴 | 2023-04-19 | v3.2.4 (2023-04-19) | 🔴 |
120 | | [Mustache.js](https://github.com/janl/mustache.js) | A JavaScript implementation of the mustache logic-less templates | 16611⭐ | 2385🍴 | 2023-01-21 | v4.2.0 (2021-03-28) | 🔴 |
121 | | [Pug](https://github.com/pugjs/pug) | A high-performance template engine influenced by Haml for Node.js and browsers | 21802⭐ | 1956🍴 | 2024-05-24 | pug@3.0.3 (2024-05-24) | 🟢 |
122 | | [Rivets](https://github.com/mikeric/rivets) | A lightweight data binding and template engine specializing in building data-driven views | 3224⭐ | 308🍴 | 2016-10-22 | v0.9.6 (2016-10-22) | 🔴 |
123 | | [Swig](https://github.com/paularmstrong/swig) | A simple, Django/Jinja-like template engine for node.js | 3110⭐ | 439🍴 | 2016-08-05 | v1.4.2 (2014-08-04) | 🔴 |
124 | | [Twig.js](https://github.com/twigjs/twig.js) | A pure JavaScript implementation of the Twig PHP templating language | 1899⭐ | 274🍴 | 2023-11-16 | v1.17.1 (2023-11-16) | 🔴 |
125 | | [Velocity.js](https://github.com/shepherdwind/velocity.js) | A port of Apache velocity template engine in JavaScript using Jison library parser | 605⭐ | 145🍴 | 2025-04-14 | v2.1.3 (2025-04-14) | 🟢 |
126 |
127 | ## Kotlin
128 | Summary of (1 template engines)
129 |
130 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
131 | |--------|-------------|-------|-------|-------------|----------------|--------|
132 | | [Barber](https://github.com/cashapp/barber) | A type safe Kotlin JVM library for building up templates | 172⭐ | 22🍴 | 2024-04-03 | v2024.04.03.174754-97b01fc (2024-04-03) | 🔴 |
133 |
134 | ## Lua
135 | Summary of (2 template engines)
136 |
137 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
138 | |--------|-------------|-------|-------|-------------|----------------|--------|
139 | | [Lua Resty Template](https://github.com/bungle/lua-resty-template) | A compiling template engine for Lua and OpenResty | 918⭐ | 206🍴 | 2023-03-23 | v2.0 (2020-02-24) | 🔴 |
140 | | [Lustache](https://github.com/Olivine-Labs/lustache) | Lua implementation of Mustache template engine | 242⭐ | 33🍴 | 2021-01-15 | v1.3.1-0 (2015-11-30) | 🔴 |
141 |
142 | ## PHP
143 | Summary of (15 template engines)
144 |
145 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
146 | |--------|-------------|-------|-------|-------------|----------------|--------|
147 | | [Blade](https://github.com/laravel/framework/tree/10.x/src/Illuminate/View) | The simple yet powerful templating engine provided with Laravel | 33500⭐ | 11317🍴 | 2025-04-18 | v12.9.2 (2025-04-16) | 🟢 |
148 | | [Blade One](https://github.com/EFTEC/BladeOne) | A standalone version of Laravel's Blade templating engine for use outside of Laravel | 792⭐ | 122🍴 | 2025-02-22 | 4.18 (2025-02-22) | 🟢 |
149 | | [Dwoo](https://github.com/dwoo-project/dwoo) | A PHP5/PHP7 template engine which follows Smarty's footsteps | 166⭐ | 58🍴 | 2018-07-25 | 1.3.7 (2018-04-18) | 🔴 |
150 | | [Fenom](https://github.com/fenom-template/fenom) | A fast template engine for PHP with syntax similar to Smarty | 447⭐ | 108🍴 | 2024-09-08 | v3.0.0 (2023-02-27) | 🟢 |
151 | | [Laravel Blade](https://laravel.com/docs/11.x/blade) | The official Blade templating engine integrated with Laravel framework | 0⭐ | 0🍴 | N/A | N/A | N/A |
152 | | [Latte](https://github.com/nette/latte) | A secure template engine for PHP with protection against vulnerabilities | 1180⭐ | 110🍴 | 2025-02-26 | v3.0.20 (2024-10-06) | 🟢 |
153 | | [Mustache.php](https://github.com/bobthecow/mustache.php) | A Mustache implementation in PHP | 3249⭐ | 431🍴 | 2024-08-13 | v2.14.2 (2022-08-23) | 🟢 |
154 | | [PHP Text Template](https://github.com/sebastianbergmann/php-text-template) | A simple template engine for text output in PHP applications | 7403⭐ | 31🍴 | 2025-04-13 | 5.0.0 (2025-02-07) | 🟢 |
155 | | [Plates](https://github.com/thephpleague/plates) | A native PHP template system inspired by Twig | 1498⭐ | 178🍴 | 2024-11-04 | v3.6.0 (2024-11-02) | 🟢 |
156 | | [RainTPL 3](https://github.com/feulf/raintpl3) | An easy template engine for PHP that loads HTML templates | 258⭐ | 57🍴 | 2019-10-04 | v.3.beta (2012-05-03) | 🔴 |
157 | | [Savant](https://github.com/saltybeagle/Savant3) | A powerful but lightweight object-oriented template system for PHP | 18⭐ | 15🍴 | 2014-01-07 | N/A | 🔴 |
158 | | [Smarty](https://github.com/smarty-php/smarty) | A template engine for PHP using variables, modifiers, functions and comments | 2300⭐ | 719🍴 | 2025-04-16 | v5.4.5 (2025-04-15) | 🟢 |
159 | | [TinyButStrong](https://github.com/Skrol29/tinybutstrong) | A PHP template engine enabling W3C compliant templates | 61⭐ | 17🍴 | 2024-05-08 | v3.15.2 (2024-05-08) | 🟢 |
160 | | [Twig](https://github.com/twigphp/Twig) | A flexible, fast, and secure template language for PHP inspired by Django and Jinja | 8269⭐ | 1276🍴 | 2025-03-30 | v3.20.0 (2025-02-13) | 🟢 |
161 | | [Volt](https://github.com/phalcon/volt) | An ultra-fast and designer-friendly templating engine written in C for PHP | 10⭐ | 3🍴 | 2025-04-01 | N/A | 🟢 |
162 |
163 | ## Python
164 | Summary of (10 template engines)
165 |
166 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
167 | |--------|-------------|-------|-------|-------------|----------------|--------|
168 | | [Chameleon](https://github.com/malthe/chameleon) | An HTML/XML template engine generation library in Python | 181⭐ | 65🍴 | 2025-01-10 | 4.6.0 (2024-12-31) | 🟢 |
169 | | [Cheetah3](https://github.com/CheetahTemplate3/cheetah3) | A template engine for Python that allows full integration with existing Python code | 146⭐ | 37🍴 | 2025-04-11 | 3.4.0 (2024-12-02) | 🟢 |
170 | | [Chevron](https://github.com/noahmorrison/chevron) | A fast Python implementation of Mustache template engine | 526⭐ | 58🍴 | 2021-03-21 | 0.13.1 (2018-10-03) | 🔴 |
171 | | [Genshi](https://github.com/edgewall/genshi) | A Python template engine that provides XML-based template language | 91⭐ | 36🍴 | 2024-11-16 | 0.7.9 (2024-06-15) | 🟢 |
172 | | [Jinja](https://github.com/pallets/jinja) | A fast, expressive, extensible templating engine with Python-like syntax | 10780⭐ | 1649🍴 | 2025-03-05 | 3.1.6 (2025-03-05) | 🟢 |
173 | | [Jsonnet](https://github.com/google/jsonnet) | A configuration language for app and tool developers | 7173⭐ | 452🍴 | 2025-03-30 | v0.20.0 (2023-04-17) | 🟢 |
174 | | [Kajiki](https://github.com/jackrosenthal/kajiki) | A fast Python template engine with XML/HTML output inspired by Genshi | 47⭐ | 16🍴 | 2025-02-15 | v0.9.2 (2022-11-24) | 🟢 |
175 | | [Mako](https://github.com/sqlalchemy/mako) | A template library written in Python inspired by Django, Jinja2, Cheetah, and Genshi | 384⭐ | 64🍴 | 2025-04-10 | rel_1_3_10 (2025-04-10) | 🟢 |
176 | | [Pystache](https://github.com/defunkt/pystache) | A Python implementation of Mustache template engine | 1312⭐ | 309🍴 | 2014-09-30 | v0.5.4 (2014-05-12) | 🔴 |
177 | | [Unprompted](https://github.com/ThereforeGames/unprompted) | A powerful templating language for Stable Diffusion workflows | 798⭐ | 70🍴 | 2024-07-29 | N/A | 🟢 |
178 |
179 | ## R
180 | Summary of (1 template engines)
181 |
182 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
183 | |--------|-------------|-------|-------|-------------|----------------|--------|
184 | | [Whisker](https://github.com/edwindj/whisker) | A Mustache implementation in R confirming to its specification | 214⭐ | 17🍴 | 2022-11-07 | N/A | 🔴 |
185 |
186 | ## Ruby
187 | Summary of (7 template engines)
188 |
189 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
190 | |--------|-------------|-------|-------|-------------|----------------|--------|
191 | | [ERB](https://docs.ruby-lang.org/en/2.3.0/ERB.html) | A built-in Ruby templating engine that allows embedding Ruby code in documents | 0⭐ | 0🍴 | N/A | N/A | N/A |
192 | | [Haml](https://github.com/haml/haml) | A templating engine designed for elegant HTML document generation | 3777⭐ | 575🍴 | 2024-12-28 | v6.3.0 (2023-12-10) | 🟢 |
193 | | [Hamlit](https://github.com/k0kubun/hamlit) | A high performance implementation of Haml | 981⭐ | 59🍴 | 2023-08-02 | v3.0.3 (2022-11-08) | 🔴 |
194 | | [Jb](https://github.com/amatsuda/jb) | A simpler and faster alternative to JBuilder | 1302⭐ | 43🍴 | 2025-01-16 | v0.8.2 (2023-11-04) | 🟢 |
195 | | [JBuilder](https://github.com/rails/jbuilder) | A DSL for declaring JSON structures in Ruby | 4366⭐ | 440🍴 | 2025-04-04 | v2.13.0 (2024-09-15) | 🟢 |
196 | | [Liquid](https://github.com/Shopify/liquid) | A secure, non-evaluating template engine with separate compile and render steps | 11315⭐ | 1435🍴 | 2025-04-14 | v5.8.6 (2025-04-14) | 🟢 |
197 | | [Mustache](https://github.com/mustache/mustache) | A framework-agnostic way to render logic-free views in Ruby | 3049⭐ | 268🍴 | 2022-09-17 | v1.0.2 (2015-06-24) | 🔴 |
198 |
199 | ## Rust
200 | Summary of (6 template engines)
201 |
202 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
203 | |--------|-------------|-------|-------|-------------|----------------|--------|
204 | | [Handlebars-rust](https://github.com/sunng87/handlebars-rust) | A Rust port of Handlebars template engine | 1359⭐ | 147🍴 | 2025-04-18 | v6.3.2 (2025-03-16) | 🟢 |
205 | | [Liquid-rust](https://github.com/cobalt-org/liquid-rust) | A port of Liquid templating engine in Rust | 506⭐ | 79🍴 | 2025-04-10 | v0.16.0 (2018-10-04) | 🟢 |
206 | | [Maud](https://github.com/lambda-fairy/maud) | An HTML template engine implemented as a Rust macro | 2316⭐ | 160🍴 | 2025-03-03 | v0.27.0 (2025-02-02) | 🟢 |
207 | | [Rust-Mustache](https://github.com/nickel-org/rust-mustache) | A Rust implementation of Mustache specification | 213⭐ | 65🍴 | 2021-06-22 | v0.9.0 (2018-02-12) | 🔴 |
208 | | [SailFish](https://github.com/rust-sailfish/sailfish) | A simple template engine with EJS-like syntax and built-in filters | 874⭐ | 56🍴 | 2025-02-13 | v0.9.0 (2024-10-08) | 🟢 |
209 | | [Tera](https://github.com/Keats/tera) | A template engine inspired by Jinja2 and Django template language | 3788⭐ | 303🍴 | 2025-03-18 | v1.20.0 (2024-05-27) | 🟢 |
210 |
211 | ## Scala
212 | Summary of (7 template engines)
213 |
214 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
215 | |--------|-------------|-------|-------|-------------|----------------|--------|
216 | | [Beard](https://github.com/zalando/beard) | A logic-less templating engine inspired by Mustache using ANTLR for parsing | 120⭐ | 28🍴 | 2023-11-13 | 0.3.1 (2020-03-25) | 🔴 |
217 | | [Handlebars.scala](https://github.com/mwunsch/handlebars.scala) | A Scala implementation of Handlebars template engine | 111⭐ | 38🍴 | 2016-08-26 | v0.0.4 (2013-02-06) | 🔴 |
218 | | [Hepek](https://github.com/sake92/hepek) | A Scala-based tool for generating typesafe and flexible HTML | 108⭐ | 10🍴 | 2025-04-15 | v0.32.0 (2025-04-09) | 🟢 |
219 | | [ScalaTags](https://github.com/com-lihaoyi/scalatags) | A small and fast XML/HTML/CSS construction library for Scala | 764⭐ | 118🍴 | 2025-01-14 | v0.6.0 (2016-07-16) | 🟢 |
220 | | [Scalate](https://github.com/scalate/scalate) | A template engine supporting multiple syntax styles including HAML, Mustache, and JSP | 607⭐ | 105🍴 | 2025-04-15 | scalate-project-1.10.1 (2024-05-12) | 🟢 |
221 | | [Thera](https://github.com/scala-thera/thera) | A template engine for building static websites in Scala | 52⭐ | 3🍴 | 2020-11-26 | 0.2.0-M3 (2020-11-14) | 🔴 |
222 | | [Twirl](https://github.com/playframework/twirl) | A Scala-based template engine inspired by ASP.NET Razor | 555⭐ | 113🍴 | 2025-04-14 | 2.0.8 (2025-02-23) | 🟢 |
223 |
224 | ## Swift
225 | Summary of (2 template engines)
226 |
227 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
228 | |--------|-------------|-------|-------|-------------|----------------|--------|
229 | | [GRMustache.swift](https://github.com/groue/GRMustache.swift) | An extended implementation of Mustache templates with additional functions | 620⭐ | 154🍴 | 2024-10-28 | 6.0.0 (2024-10-28) | 🟢 |
230 | | [Stencil](https://github.com/stencilproject/Stencil) | A simple template language with Django and Mustache-like syntax | 2374⭐ | 221🍴 | 2024-12-22 | 0.15.1 (2022-07-31) | 🟢 |
231 |
232 | ## TypeScript
233 | Summary of (3 template engines)
234 |
235 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
236 | |--------|-------------|-------|-------|-------------|----------------|--------|
237 | | [Eta](https://github.com/eta-dev/eta) | A lightweight templating engine for Node and Deno with small bundle size | 1487⭐ | 67🍴 | 2024-08-26 | v3.5.0 (2024-08-12) | 🟢 |
238 | | [LiquidJS](https://github.com/harttle/liquidjs) | A port of Shopify Liquid template engine compatible with Github Pages | 1623⭐ | 238🍴 | 2025-04-03 | v10.21.0 (2025-02-23) | 🟢 |
239 | | [Squirrelly](https://github.com/squirrellyjs/squirrelly) | A modern template engine with Nunjucks-like power and EJS-like simplicity | 655⭐ | 83🍴 | 2025-03-28 | v9.1.0 (2024-07-02) | 🟢 |
240 |
241 |
242 | # Benchmarks on Template Engines
243 | The [benchmarks.md](benchmarks.md) file contains template-engine benchmarks in popular programming languages.
244 |
245 | # Contributing
246 | Feel free to submit a PR to add or update template engine information!
247 | 1. The template engine is open source.
248 | 2. Provide the GitHub repository URL and include a brief description.
249 | 3. Ensure to add in alphabetical order in `gen/template-engines.yaml` file.
250 | 4. Ensure to add in the correct language category.
251 |
252 | ---
253 | **Stats**
254 | - Last update column shows the last commit date in the default branch.
255 | - Green(🟢) if the repository is active and has default branch commit in last 12 months, red(🔴) otherwise.
256 | - Last updated: 2025-04-19
--------------------------------------------------------------------------------
/benchmarks.md:
--------------------------------------------------------------------------------
1 | # Benchmarks
2 |
3 | ## JavaScript
4 |
5 | ### [Marko-templating-benchmark](https://github.com/marko-js/templating-benchmarks)
6 | This repo provides a framework for running benchmarks against multiple templating engines under Node.js. The following templating engine are compared:
7 |
8 | | Template | Syntax | Streaming | Asynchronous | Auto-escape |
9 | |-------------------------------------------------------|-------------------|-----------|--------------|-------------|
10 | | [dustjs](https://github.com/linkedin/dustjs) | Text | ✔ | ✔ | ✔ |
11 | | [doT](https://github.com/olado/doT) | Text | ✖ | ✖ | ✖ |
12 | | [handlebars](https://github.com/wycats/handlebars.js) | Text | ✖ | ✖ | ✔ |
13 | | [pug](https://github.com/pugjs/pug) | Short-hand HTML | ✖ | ✖ | ✔ |
14 | | [marko](https://github.com/marko-js/marko) | HTML/Concise HTML | ✔ | ✔ | ✔ |
15 | | [nunjucks](http://mozilla.github.io/nunjucks/) | Text | ✖ | ✔ | ✖ |
16 | | [swig](http://mozilla.github.io/nunjucks/) | Text | ✖ | ✖ | ✔ |
17 |
18 | ### [Node.js template engine](https://github.com/baryshev/template-benchmark)
19 |
20 | ### [node](https://github.com/paularmstrong/node-templates)
21 | old benchmark
22 |
23 | ## Go
24 |
25 | 1. [goTemplateBenchmark](https://github.com/slinso/goTemplateBenchmark)
26 |
27 | This repo compares template engines in golang. It includes [Ace](https://github.com/yosssi/ace), [Amber](https://github.com/eknkc/amber), [Mustache.go](https://github.com/hoisie/mustache), [Raymond](https://github.com/aymerick/raymond), [Pongo2](https://github.com/flosch/pongo2), [Jet](https://github.com/CloudyKit/jet), [Soy](https://github.com/robfig/soy).
28 |
29 |
30 | ## Java
31 |
32 | ### [Java Template Benchmark](https://github.com/mbosecke/template-benchmark)
33 | JMH benchmark
34 |
35 | ### [](https://github.com/casid/template-benchmark)
36 | forked above
37 |
38 | ### [](https://github.com/agentgt/template-benchmark)
39 | Forked Above
40 |
41 | ## [spring-comparing-template-engines](https://github.com/jreijn/spring-comparing-template-engines)
42 |
43 | ## [](https://github.com/xmlet/template-benchmark)
44 | forked from [Java Template Benchmark](https://github.com/mbosecke/template-benchmark)
45 |
46 | ## Rust
47 |
48 | ### [Rust template benchmark](https://github.com/rosetta-rs/template-benchmarks-rs)
49 |
50 | ## .Net
51 |
52 | ### [Fluid vs Liquid implementations](https://github.com/sebastienros/fluid?#benchmarks)
53 | THe benchmark compares time taken for template engines implemented in C#. The template engines include - Fluid, Scriban, DotLiquid, Liquid.NET and Handlebars.NET repository.
54 | Fluid is faster and allocates less memory than these .NET Liquid implementation. Fluid is 19% faster than the second in parsing while Scriban allocates nearly 3 times less memory than second. In rendering, Fluid is 26% faster than the second while Handlebars is 5 times faster than Scriban.
55 |
56 | ## PHP
57 |
58 | ### [Twig vs Smarty vs Fenom](https://github.com/fenom-template/benchmark)
59 | [Comparison Details](https://github.com/fenom-template/fenom/blob/master/docs/en/benchmark.md) for three PHP templates engines-Twig, Smarty and Fenom is done.
60 | The comparison templates invlve forEach, variable reference and template inheritance. [Script file](https://github.com/fenom-template/benchmark/blob/master/bin/fenom-benchmark.php)
61 |
--------------------------------------------------------------------------------
/gen/README.md.jinja:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Awesome Template Engine
8 |
9 |
10 |
15 |
16 | ---
17 |
18 | A curated list of template engines across all programming languages with repository activity stats.
19 |
20 | # Template Engines by Language
21 |
22 | {% for language, engines in template_engines.items()|sort %}
23 | ## {{ language }}
24 | Summary of ({{ engines|length }} template engines)
25 |
26 | | Engine | Description | Stars | Forks | Last Update | Latest Release | Status |
27 | |--------|-------------|-------|-------|-------------|----------------|--------|
28 | {% for engine in engines %}
29 | {%- set stats = get_repo_stats(engine.url) %}
30 | | [{{ engine.name }}]({{ engine.url }}) | {{ engine.description }} | {{ stats.stars }}⭐ | {{ stats.forks }}🍴 | {{ stats.last_update|default('N/A')|truncate(10, True, '') }} | {{ stats.latest_release }} {% if stats.release_date != 'N/A' %}({{ stats.release_date }}){% endif %} | {{ '🟢' if stats.active == 'Yes' else '🔴' if stats.active == 'No' else 'N/A' }} |
31 | {% endfor %}
32 |
33 | {% endfor %}
34 |
35 | # Benchmarks on Template Engines
36 | The [benchmarks.md](benchmarks.md) file contains template-engine benchmarks in popular programming languages.
37 |
38 | # Contributing
39 | Feel free to submit a PR to add or update template engine information!
40 | 1. The template engine is open source.
41 | 2. Provide the GitHub repository URL and include a brief description.
42 | 3. Ensure to add in alphabetical order in `gen/template-engines.yaml` file.
43 | 4. Ensure to add in the correct language category.
44 |
45 | ---
46 | **Stats**
47 | - Last update column shows the last commit date in the default branch.
48 | - Green(🟢) if the repository is active and has default branch commit in last 12 months, red(🔴) otherwise.
49 | - Last updated: {{ current_date }}
50 |
--------------------------------------------------------------------------------
/gen/generate_readme.py:
--------------------------------------------------------------------------------
1 | import os
2 | from datetime import datetime, timezone
3 | from pathlib import Path
4 | from typing import Dict
5 |
6 | import jinja2
7 | import requests
8 | import yaml
9 |
10 |
11 | def get_repo_stats(repo_url: str) -> Dict:
12 | """Get repository statistics from GitHub API"""
13 | if not repo_url.startswith('https://github.com/'):
14 | return {'stars': 0, 'forks': 0, 'last_update': 'N/A', 'latest_release': 'N/A',
15 | 'release_date': 'N/A', 'active': 'N/A'}
16 |
17 | try:
18 | # Extract owner and repo from URL, handling various formats
19 | parts = repo_url.rstrip('/').split('/')
20 | if len(parts) > 5: # Handle deep paths like tree/master/etc
21 | owner = parts[3]
22 | repo = parts[4]
23 | else:
24 | owner = parts[-2]
25 | repo = parts[-1]
26 |
27 | api_url = f"https://api.github.com/repos/{owner}/{repo}"
28 | headers = {
29 | 'Accept': 'application/vnd.github.v3+json',
30 | 'Authorization': f"token {os.getenv('GITHUB_TOKEN')}" if os.getenv('GITHUB_TOKEN') else ''
31 | }
32 |
33 | response = requests.get(api_url, headers=headers)
34 |
35 | last_update = 'N/A'
36 | active = 'N/A'
37 |
38 | if response.status_code == 200:
39 | data = response.json()
40 |
41 | # Get last commit date specifically for the default branch
42 | if 'default_branch' in data:
43 | commits_url = f"https://api.github.com/repos/{owner}/{repo}/commits/{data['default_branch']}"
44 | commits_response = requests.get(commits_url, headers=headers)
45 |
46 | if commits_response.status_code == 200:
47 | commit_data = commits_response.json()
48 | if 'commit' in commit_data and 'committer' in commit_data['commit']:
49 | branch_last_update = commit_data['commit']['committer'].get('date')
50 | if branch_last_update:
51 | last_update = branch_last_update
52 | last_update_date = datetime.strptime(last_update, '%Y-%m-%dT%H:%M:%SZ')
53 | months_since_commit = (datetime.now(timezone.utc) - last_update_date.replace(
54 | tzinfo=timezone.utc)).days / 30
55 | # Consider a repo active if it was updated in the last 12 months
56 | active = "Yes" if months_since_commit < 12 else "No"
57 | else:
58 | active = "Unknown"
59 |
60 | # Get latest release information
61 | latest_release = "N/A"
62 | release_date = "N/A"
63 |
64 | # Try releases API first
65 | releases_url = f"https://api.github.com/repos/{owner}/{repo}/releases/latest"
66 | releases_response = requests.get(releases_url, headers=headers)
67 |
68 | if releases_response.status_code == 200:
69 | release_data = releases_response.json()
70 | latest_release = release_data.get('tag_name', 'N/A')
71 |
72 | if 'published_at' in release_data:
73 | release_date = release_data.get('published_at')[:10] # Get only YYYY-MM-DD part
74 | else:
75 | # Try tags API if releases API fails
76 | tags_url = f"https://api.github.com/repos/{owner}/{repo}/tags"
77 | tags_response = requests.get(tags_url, headers=headers)
78 |
79 | if tags_response.status_code == 200:
80 | tags_data = tags_response.json()
81 | if tags_data and len(tags_data) > 0:
82 | latest_release = tags_data[0].get('name', 'N/A')
83 |
84 | # Get commit info for the tag to find the date
85 | if 'commit' in tags_data[0] and 'url' in tags_data[0]['commit']:
86 | commit_url = tags_data[0]['commit']['url']
87 | commit_response = requests.get(commit_url, headers=headers)
88 |
89 | if commit_response.status_code == 200:
90 | commit_data = commit_response.json()
91 | if 'commit' in commit_data and 'committer' in commit_data['commit']:
92 | if 'date' in commit_data['commit']['committer']:
93 | tag_date = commit_data['commit']['committer']['date']
94 | release_date = tag_date[:10] # Get only YYYY-MM-DD part
95 |
96 | return {
97 | 'stars': int(data.get('stargazers_count', 0)),
98 | 'forks': int(data.get('forks_count', 0)),
99 | 'last_update': last_update,
100 | 'latest_release': latest_release,
101 | 'release_date': release_date,
102 | 'active': active
103 | }
104 | except Exception as e:
105 | print(f"Error fetching stats for {repo_url}: {e}")
106 |
107 | return {'stars': 0, 'forks': 0, 'last_update': 'N/A', 'latest_release': 'N/A',
108 | 'release_date': 'N/A', 'active': 'N/A'}
109 |
110 |
111 | def generate_readme():
112 | """Generate README.md from template and YAML data"""
113 | script_dir = Path(__file__).parent
114 | parent_dir = script_dir.parent # Get parent directory
115 |
116 | # Load template engines data
117 | yaml_path = script_dir / 'template-engines.yaml'
118 | with open(yaml_path, 'r', encoding='utf-8') as f:
119 | data = yaml.safe_load(f)
120 | template_engines = data['template_engines']
121 |
122 | # Calculate statistics
123 | total_engines = sum(len(engines) for engines in template_engines.values())
124 | total_languages = len(template_engines)
125 |
126 | # Create Jinja environment
127 | env = jinja2.Environment(
128 | loader=jinja2.FileSystemLoader(script_dir),
129 | trim_blocks=True,
130 | lstrip_blocks=True,
131 | autoescape=True
132 | )
133 |
134 | # Add custom filters if needed
135 | env.filters['int'] = lambda x: int(x) if str(x).isdigit() else 0
136 |
137 | # Load and render template
138 | template = env.get_template('README.md.jinja')
139 | readme_content = template.render(
140 | template_engines=template_engines,
141 | get_repo_stats=get_repo_stats,
142 | current_date=datetime.now().strftime('%Y-%m-%d'),
143 | total_engines=total_engines,
144 | total_languages=total_languages
145 | )
146 |
147 | # Write to README.md in parent directory
148 | readme_path = parent_dir / 'README.md'
149 | with open(readme_path, 'w', encoding='utf-8') as f:
150 | f.write(readme_content)
151 |
152 | print(f"Successfully generated {readme_path}")
153 | print(f"Total template engines: {total_engines}")
154 | print(f"Total languages: {total_languages}")
155 |
156 |
157 | if __name__ == "__main__":
158 | generate_readme()
159 |
--------------------------------------------------------------------------------
/gen/requirements.txt:
--------------------------------------------------------------------------------
1 | # Required packages
2 | pyyaml>=6.0.1
3 | jinja2>=3.1.2
4 | requests>=2.31.0
5 | pathlib>=1.0.1
6 | typing>=3.7.4.3
7 |
--------------------------------------------------------------------------------
/gen/template-engines.yaml:
--------------------------------------------------------------------------------
1 | template_engines:
2 | C#:
3 | - name: DotLiquid
4 | description: A .Net port of the popular Liquid templating language written in Ruby
5 | url: https://github.com/dotliquid/dotliquid
6 | - name: Fluid
7 | description: An open-source .NET template engine based on the Liquid template language
8 | url: https://github.com/sebastienros/fluid
9 | - name: Handlebars.Net
10 | description: A port of Handlebars.js to .NET that compiles templates directly to IL bytecode
11 | url: https://github.com/Handlebars-Net/Handlebars.Net
12 | - name: MJML.Net
13 | description: A fast port of MJML 4 to .NET 6 & 7
14 | url: https://github.com/SebastianStehle/mjml-net
15 | - name: RazorLight
16 | description: Template engine for building templates from Files outside of ASP.NET MVC
17 | url: https://github.com/toddams/RazorLight
18 | - name: Scriban
19 | description: Fast and lightweight scripting language for .NET with liquid compatibility mode
20 | url: https://github.com/scriban/scriban
21 | - name: Spark
22 | description: View engine for ASP.NET MVC with syntax inspired by Jade/Haml
23 | url: https://github.com/SparkViewEngine/spark
24 | - name: Stubble
25 | description: Trimmed down {{mustache}} templates in .NET
26 | url: https://github.com/StubbleOrg/Stubble
27 |
28 | C++:
29 | - name: Inja
30 | description: Template engine inspired by Jinja for modern C++
31 | url: https://github.com/pantor/inja
32 | - name: Jinja2Cpp
33 | description: C++ implementation of Python Jinja2 template engine
34 | url: https://github.com/jinja2cpp/Jinja2Cpp
35 | - name: mstch
36 | description: Complete implementation of mustache templates in C++
37 | url: https://github.com/no1msd/mstch
38 | - name: Qentem
39 | description: Lightweight template engine for C++/C/Java projects and WASM
40 | url: https://github.com/HaniAmmar/Qentem-Engine
41 |
42 | CoffeeScript:
43 | - name: DocPad
44 | description: Streamlined web development using CoffeeScript
45 | url: https://github.com/docpad/docpad
46 |
47 | Go:
48 | - name: Ace
49 | description: HTML template engine inspired by Slim and Jade
50 | url: https://github.com/yosssi/ace
51 | - name: Amber
52 | description: Template engine inspired from HAML and Jade
53 | url: https://github.com/eknkc/amber
54 | - name: Ego
55 | description: ERB style templating language that transpiles to Go
56 | url: https://github.com/benbjohnson/ego
57 | - name: GoRazor
58 | description: Go port of the Razor view engine
59 | url: https://github.com/sipin/gorazor
60 | - name: Hero
61 | description: Fast template engine that pre-compiles to Go code
62 | url: https://github.com/shiyanhui/hero
63 | - name: Jade
64 | description: Implementation of Jade/Pug templates in Go
65 | url: https://github.com/Joker/jade
66 | - name: Jet
67 | description: Fast and dynamic template engine with Django-like syntax
68 | url: https://github.com/CloudyKit/jet
69 | - name: Mustache.go
70 | description: Go implementation of Mustache templates
71 | url: https://github.com/hoisie/mustache
72 | - name: Pongo2
73 | description: Django-syntax templating for Go
74 | url: https://github.com/flosch/pongo2
75 | - name: QuickTemplate
76 | description: Fast template engine inspired by Mako
77 | url: https://github.com/valyala/quicktemplate
78 | - name: Raymond
79 | description: Go port of Handlebars.js
80 | url: https://github.com/aymerick/raymond
81 | - name: Soy
82 | description: Go implementation of Google Closure Templates
83 | url: https://github.com/robfig/soy
84 |
85 | Groovy:
86 | - name: Jenkins Templating Engine
87 | description: A plugin enabling Jenkins pipeline templating and governance, bringing Template Method Design Pattern to pipelines
88 | url: https://github.com/jenkinsci/templating-engine-plugin
89 |
90 | Java:
91 | - name: Apache FreeMarker
92 | description: A Java template engine that can be used to generate text output based on templates
93 | url: https://github.com/apache/freemarker
94 | - name: Apache Velocity
95 | description: A Java based template engine
96 | url: https://github.com/apache/velocity-engine
97 | - name: Blade
98 | description: A simple open source web framework that helps quickly build web applications
99 | url: https://github.com/lets-blade/blade
100 | - name: Closure-Templates
101 | description: A client and server-side templating system for dynamically building reusable HTML and UI elements
102 | url: https://github.com/google/closure-templates
103 | - name: Handlebars.java
104 | description: A Java port of the Handlebars template engine following Mustache template
105 | url: https://github.com/jknack/handlebars.java
106 | - name: HtmlFlow
107 | description: A Java DSL to write typesafe HTML in a fluent style
108 | url: https://github.com/xmlet/HtmlFlow
109 | - name: JinJava
110 | description: Java-based template engine based on django template syntax, adapted to render jinja templates
111 | url: https://github.com/HubSpot/jinjava
112 | - name: JMustache
113 | description: A Java implementation of Mustache specification template engine
114 | url: https://github.com/samskivert/jmustache
115 | - name: JStachio
116 | description: A Mustache compatible type-safe Java templating engine
117 | url: https://github.com/jstachio/jstachio
118 | - name: JTE
119 | description: Lightweight template engine for Java and Kotlin with productive and typesafe experience
120 | url: https://github.com/casid/jte
121 | - name: ManTL
122 | description: A lightweight & type-safe template engine integrated with the Java compiler using Manifold
123 | url: https://github.com/manifold-systems/manifold/tree/master/manifold-deps-parent/manifold-templates
124 | - name: Mustache.java
125 | description: A derivative template engine of mustache.js with its own parser written in Java
126 | url: https://github.com/spullara/mustache.java
127 | - name: Pebble
128 | description: A template engine inspired from Twig with syntax similar to Jinja featuring template inheritance
129 | url: https://github.com/PebbleTemplates/pebble
130 | - name: Pug4J
131 | description: A Java implementation of the Pug templating language
132 | url: https://github.com/neuland/pug4j
133 | - name: Rocker
134 | description: An intuitive, tagless syntax template engine with standard Java expressions
135 | url: https://github.com/fizzed/rocker
136 | - name: Thymeleaf
137 | description: A server-side Java template engine for both web and standalone environments
138 | url: https://github.com/thymeleaf/thymeleaf
139 | - name: Trimou
140 | description: A Mustache spec implementation with helpers inspired from Handlebars.js
141 | url: https://github.com/trimou/trimou
142 |
143 | JavaScript:
144 | - name: .Dom
145 | description: A template engine replicating re-usable component and virtual DOM within 512 bytes
146 | url: https://github.com/wavesoft/dot-dom
147 | - name: Art-template
148 | description: A fast templating engine that optimizes template rendering speed by scope pre-declared technique
149 | url: https://github.com/aui/art-template
150 | - name: Carbone
151 | description: A mustache-like template engine and open source document generator
152 | url: https://github.com/carboneio/carbone
153 | - name: Consolidate.js
154 | description: A library that consolidates most known template engines implemented in JS
155 | url: https://github.com/tj/consolidate.js
156 | - name: doT
157 | description: A fastest JavaScript templating function with emphasis on performance under V8 and nodejs
158 | url: https://github.com/olado/doT
159 | - name: DustJS
160 | description: An asynchronous Javascript templating engine developed by LinkedIn
161 | url: https://github.com/linkedin/dustjs
162 | - name: ECT
163 | description: Performance focused JavaScript template engine with embedded CoffeeScript syntax
164 | url: https://github.com/baryshev/ect
165 | - name: EJS
166 | description: Embedded JavaScript templates designed to be flexible and easy-to-write
167 | url: https://github.com/mde/ejs
168 | - name: Handlebars.js
169 | description: A template engine extending Mustache templating with additional features
170 | url: https://github.com/handlebars-lang/handlebars.js
171 | - name: Hogan.js
172 | description: A compiler for the Mustache templating language with separate scanning, parsing and code generation phases
173 | url: https://github.com/twitter/hogan.js
174 | - name: Lodash
175 | description: A utility library for working with arrays, numbers, objects, strings, and creating composite functions
176 | url: https://github.com/lodash/lodash
177 | - name: Marko
178 | description: HTML reimagined as a language for building dynamic and reactive user interfaces
179 | url: https://github.com/marko-js/marko
180 | - name: MJML
181 | description: A markup language designed to reduce the pain of coding responsive email
182 | url: https://github.com/mjmlio/mjml
183 | - name: Nunjucks
184 | description: A templating engine heavily inspired from Jinja2 with template inheritance & asynchronous control
185 | url: https://github.com/mozilla/nunjucks
186 | - name: Mustache.js
187 | description: A JavaScript implementation of the mustache logic-less templates
188 | url: https://github.com/janl/mustache.js
189 | - name: Pug
190 | description: A high-performance template engine influenced by Haml for Node.js and browsers
191 | url: https://github.com/pugjs/pug
192 | - name: Rivets
193 | description: A lightweight data binding and template engine specializing in building data-driven views
194 | url: https://github.com/mikeric/rivets
195 | - name: Swig
196 | description: A simple, Django/Jinja-like template engine for node.js
197 | url: https://github.com/paularmstrong/swig
198 | - name: Twig.js
199 | description: A pure JavaScript implementation of the Twig PHP templating language
200 | url: https://github.com/twigjs/twig.js
201 | - name: Velocity.js
202 | description: A port of Apache velocity template engine in JavaScript using Jison library parser
203 | url: https://github.com/shepherdwind/velocity.js
204 |
205 | Kotlin:
206 | - name: Barber
207 | description: A type safe Kotlin JVM library for building up templates
208 | url: https://github.com/cashapp/barber
209 |
210 | Lua:
211 | - name: Lua Resty Template
212 | description: A compiling template engine for Lua and OpenResty
213 | url: https://github.com/bungle/lua-resty-template
214 | - name: Lustache
215 | description: Lua implementation of Mustache template engine
216 | url: https://github.com/Olivine-Labs/lustache
217 |
218 | PHP:
219 | - name: Blade
220 | description: The simple yet powerful templating engine provided with Laravel
221 | url: https://github.com/laravel/framework/tree/10.x/src/Illuminate/View
222 | - name: Blade One
223 | description: A standalone version of Laravel's Blade templating engine for use outside of Laravel
224 | url: https://github.com/EFTEC/BladeOne
225 | - name: Dwoo
226 | description: A PHP5/PHP7 template engine which follows Smarty's footsteps
227 | url: https://github.com/dwoo-project/dwoo
228 | - name: Fenom
229 | description: A fast template engine for PHP with syntax similar to Smarty
230 | url: https://github.com/fenom-template/fenom
231 | - name: Laravel Blade
232 | description: The official Blade templating engine integrated with Laravel framework
233 | url: https://laravel.com/docs/11.x/blade
234 | - name: Latte
235 | description: A secure template engine for PHP with protection against vulnerabilities
236 | url: https://github.com/nette/latte
237 | - name: Mustache.php
238 | description: A Mustache implementation in PHP
239 | url: https://github.com/bobthecow/mustache.php
240 | - name: PHP Text Template
241 | description: A simple template engine for text output in PHP applications
242 | url: https://github.com/sebastianbergmann/php-text-template
243 | - name: Plates
244 | description: A native PHP template system inspired by Twig
245 | url: https://github.com/thephpleague/plates
246 | - name: RainTPL 3
247 | description: An easy template engine for PHP that loads HTML templates
248 | url: https://github.com/feulf/raintpl3
249 | - name: Savant
250 | description: A powerful but lightweight object-oriented template system for PHP
251 | url: https://github.com/saltybeagle/Savant3
252 | - name: Smarty
253 | description: A template engine for PHP using variables, modifiers, functions and comments
254 | url: https://github.com/smarty-php/smarty
255 | - name: TinyButStrong
256 | description: A PHP template engine enabling W3C compliant templates
257 | url: https://github.com/Skrol29/tinybutstrong
258 | - name: Twig
259 | description: A flexible, fast, and secure template language for PHP inspired by Django and Jinja
260 | url: https://github.com/twigphp/Twig
261 | - name: Volt
262 | description: An ultra-fast and designer-friendly templating engine written in C for PHP
263 | url: https://github.com/phalcon/volt
264 |
265 | Python:
266 | - name: Chameleon
267 | description: An HTML/XML template engine generation library in Python
268 | url: https://github.com/malthe/chameleon
269 | - name: Cheetah3
270 | description: A template engine for Python that allows full integration with existing Python code
271 | url: https://github.com/CheetahTemplate3/cheetah3
272 | - name: Chevron
273 | description: A fast Python implementation of Mustache template engine
274 | url: https://github.com/noahmorrison/chevron
275 | - name: Genshi
276 | description: A Python template engine that provides XML-based template language
277 | url: https://github.com/edgewall/genshi
278 | - name: Jinja
279 | description: A fast, expressive, extensible templating engine with Python-like syntax
280 | url: https://github.com/pallets/jinja
281 | - name: Jsonnet
282 | description: A configuration language for app and tool developers
283 | url: https://github.com/google/jsonnet
284 | - name: Kajiki
285 | description: A fast Python template engine with XML/HTML output inspired by Genshi
286 | url: https://github.com/jackrosenthal/kajiki
287 | - name: Mako
288 | description: A template library written in Python inspired by Django, Jinja2, Cheetah, and Genshi
289 | url: https://github.com/sqlalchemy/mako
290 | - name: Pystache
291 | description: A Python implementation of Mustache template engine
292 | url: https://github.com/defunkt/pystache
293 | - name: Unprompted
294 | description: A powerful templating language for Stable Diffusion workflows
295 | url: https://github.com/ThereforeGames/unprompted
296 |
297 | R:
298 | - name: Whisker
299 | description: A Mustache implementation in R confirming to its specification
300 | url: https://github.com/edwindj/whisker
301 |
302 | Ruby:
303 | - name: ERB
304 | description: A built-in Ruby templating engine that allows embedding Ruby code in documents
305 | url: https://docs.ruby-lang.org/en/2.3.0/ERB.html
306 | - name: Haml
307 | description: A templating engine designed for elegant HTML document generation
308 | url: https://github.com/haml/haml
309 | - name: Hamlit
310 | description: A high performance implementation of Haml
311 | url: https://github.com/k0kubun/hamlit
312 | - name: Jb
313 | description: A simpler and faster alternative to JBuilder
314 | url: https://github.com/amatsuda/jb
315 | - name: JBuilder
316 | description: A DSL for declaring JSON structures in Ruby
317 | url: https://github.com/rails/jbuilder
318 | - name: Liquid
319 | description: A secure, non-evaluating template engine with separate compile and render steps
320 | url: https://github.com/Shopify/liquid
321 | - name: Mustache
322 | description: A framework-agnostic way to render logic-free views in Ruby
323 | url: https://github.com/mustache/mustache
324 |
325 | Rust:
326 | - name: Handlebars-rust
327 | description: A Rust port of Handlebars template engine
328 | url: https://github.com/sunng87/handlebars-rust
329 | - name: Liquid-rust
330 | description: A port of Liquid templating engine in Rust
331 | url: https://github.com/cobalt-org/liquid-rust
332 | - name: Maud
333 | description: An HTML template engine implemented as a Rust macro
334 | url: https://github.com/lambda-fairy/maud
335 | - name: Rust-Mustache
336 | description: A Rust implementation of Mustache specification
337 | url: https://github.com/nickel-org/rust-mustache
338 | - name: SailFish
339 | description: A simple template engine with EJS-like syntax and built-in filters
340 | url: https://github.com/rust-sailfish/sailfish
341 | - name: Tera
342 | description: A template engine inspired by Jinja2 and Django template language
343 | url: https://github.com/Keats/tera
344 |
345 | Scala:
346 | - name: Beard
347 | description: A logic-less templating engine inspired by Mustache using ANTLR for parsing
348 | url: https://github.com/zalando/beard
349 | - name: Handlebars.scala
350 | description: A Scala implementation of Handlebars template engine
351 | url: https://github.com/mwunsch/handlebars.scala
352 | - name: Hepek
353 | description: A Scala-based tool for generating typesafe and flexible HTML
354 | url: https://github.com/sake92/hepek
355 | - name: ScalaTags
356 | description: A small and fast XML/HTML/CSS construction library for Scala
357 | url: https://github.com/com-lihaoyi/scalatags
358 | - name: Scalate
359 | description: A template engine supporting multiple syntax styles including HAML, Mustache, and JSP
360 | url: https://github.com/scalate/scalate
361 | - name: Thera
362 | description: A template engine for building static websites in Scala
363 | url: https://github.com/scala-thera/thera
364 | - name: Twirl
365 | description: A Scala-based template engine inspired by ASP.NET Razor
366 | url: https://github.com/playframework/twirl
367 |
368 | Swift:
369 | - name: GRMustache.swift
370 | description: An extended implementation of Mustache templates with additional functions
371 | url: https://github.com/groue/GRMustache.swift
372 | - name: Stencil
373 | description: A simple template language with Django and Mustache-like syntax
374 | url: https://github.com/stencilproject/Stencil
375 |
376 | TypeScript:
377 | - name: Eta
378 | description: A lightweight templating engine for Node and Deno with small bundle size
379 | url: https://github.com/eta-dev/eta
380 | - name: LiquidJS
381 | description: A port of Shopify Liquid template engine compatible with Github Pages
382 | url: https://github.com/harttle/liquidjs
383 | - name: Squirrelly
384 | description: A modern template engine with Nunjucks-like power and EJS-like simplicity
385 | url: https://github.com/squirrellyjs/squirrelly
386 |
--------------------------------------------------------------------------------
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sshailabh/awesome-template-engine/86317b9c1c2a4551fe32d9398cb364b6a96c72b6/icon.png
--------------------------------------------------------------------------------