├── .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 | template-engine 4 |

5 | 6 |

7 | Awesome Template Engine 8 |

9 | 10 |
11 | 12 | Awesome 13 | 14 |
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 | template-engine 4 |

5 | 6 |

7 | Awesome Template Engine 8 |

9 | 10 |
11 | 12 | Awesome 13 | 14 |
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 --------------------------------------------------------------------------------