Comparison of web template engines
The following table lists the various Web Template Engines used in Web template systems and a brief rundown of their features. The content here is a work in progress.
| Engine (implementation) | Languages | License | Variables | Functions | Includes | Conditional inclusion | Looping | Evaluation (language) | Assignment | Errors and exceptions | i18n | Natural templates | Inheritance | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Amber | C++ | GPL v 3.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (C++) | Yes | No | No | |
| Apache Velocity | Java, C# | Apache License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |||
| action4JAVA | Java | Apache License | Yes | No | Yes | Yes | Yes | No | Yes | Yes | ||||
| ASP.NET (Microsoft) | C#, VB.NET | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| ASP.NET (Mono) | C# | GNU LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| AutoGen | C | GPL license | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | ||
| Blade | PHP | MIT License | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | |
| Blitz | PHP 5, PHP (C-module) | BSD-like | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||||
| Casper | Java, JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| CheetahTemplate | Python | MIT License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| Chip Template Engine | PHP, Perl | open-source? | Yes | Yes | Yes | Yes | Yes | No | Yes | No | ||||
| Chunk Templates | Java | open-source | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | |
| CL-EMB | Common Lisp | LLGPL | Yes | Yes | No | No | Yes | Yes | Yes | No | ||||
| CodeCharge Studio | Classic ASP, C#, VB.NET, PHP, Perl, Java/JSP, ColdFusion | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| ColdFusion | CFML, CFScript | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| Cottle | C# | MIT License | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No | ||
| csharptemplates | C# | New BSD | Yes | No | No | No | No | No | No | No | ||||
| CTPP | C, C++, Perl, PHP, Python | BSD-like | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ||||
| dbPager | C++ | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
| Dermis | Classic ASP | MIT License | Yes | No | Yes | No | Yes | No | Yes | No | ||||
| Django | Python | BSD-like | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| DTL::Fast (port of Django templates) | Perl | MIT License | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | ||
| Djolt-objc | Objective-C | Apache License | Yes | No | No | No | Yes | No | No | No | ||||
| Dwoo | PHP 5 | BSD License | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | ||||
| Dylan Server Pages | Dylan | unknown | Yes | Yes | Yes | Yes | No? | No | No | No | ||||
| ECT | JavaScript | MIT License | Yes | Yes | Yes | Yes | Yes | Yes (CoffeeScript) | Yes | Yes | Yes | |||
| eRuby | Ruby | GPL / Ruby License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| FigDice | PHP 5 | GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| FreeMarker | Java | Apache License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | |
| Genshi (templating language) | Python | BSD-like | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | Yes | ||
| Go templates | Go | BSD License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |
| Google-ctemplate | C++ | BSD License | Yes | No | Yes | Yes | Yes | No | No | No | ||||
| Grantlee Template System | C++/Qt | LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| GvTags | Groovy | Apache License | Yes | Yes | Yes | Yes | Yes | Yes (Groovy) | Yes | No | ||||
| H2o | PHP, Ruby | MIT License | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||||
| HAH | PHP | MIT License | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | No | No | Yes | No | |
| Haml | Ruby, PHP (WIP) | MIT License | Yes | Yes | Yes | Yes | Yes | Yes (Ruby) | Yes | Yes | ||||
| Hamlets | Java | BSD | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ||||
| Handlebars | JavaScript | MIT License | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | No | |
| Hyperkit PHP/XML Template Engine | PHP, XML | open-source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| Histone template Engine | PHP, Java, JavaScript | Apache License | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | |
| HTML-TEMPLATE | Common Lisp | BSD | Yes | No | Yes | No | Yes | No | No | No | No | |||
| HTTL | Java | Apache License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| Jade | JavaScript | MIT License | Yes | Yes | Yes | Yes | ||||||||
| JavaServer Pages | Java | CDDL + GPL License[1] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| jin-template | Java, PHP | LGPL | Yes | No | No | No | No | No | Yes | No | ||||
| Jinja | Python | BSD | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | No | ||||
| Jinja2 | Python | BSD | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | Yes | Yes | |
| JScore | PHP + JS | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| Kalahari | Python | BSD-like | Yes | Yes | Through inheritance | No | Yes | No | Yes | Yes | ||||
| Kid (templating language) | Python | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | ||||
| Liquid | Ruby and others | MIT License | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | |||
| Lofn | Common Lisp | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | ||||
| Lucee | CFML | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (CFML) | Yes | Yes | Yes | Yes | Yes | |
| Mako | Python | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | |||
| Mars-Templater | PHP 5 | MIT License | Yes | No | No | Yes | Yes | No | No | No | ||||
| MiniTemplator | PHP, Java, VB.NET | GNU LGPL | Yes | Yes | Yes | Yes | Yes | No | No | No? | ||||
| mTemplate | PHP | MIT License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | ||
| Mustache | 30+ languages | MIT License | Yes | Yes | Yes | Yes | Yes (foreach) | No | No | Yes | Yes | Yes | No | |
| nTPL | node.js, JavaScript | MIT License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| Open Power Template | PHP 5 | BSD-like | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | ||||
| Obyx | C++ | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Pebble | Java | New BSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |
| Outline | PHP 5 | open-source | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | ||||
| pHAML | PHP | MIT License | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | ||||
| PHP | PHP | PHP License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |
| PURE Unobtrusive Rendering Engine | JavaScript | MIT License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
| pyratemp | Python | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | No | Yes | |||
| QueryTemplates | PHP 5, JavaScript | MIT License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| RainTPL | PHP | GNU LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | ||||
| Razor | C#, F#, VB.NET | Apache License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| Rythm | Java | Apache License | Yes | Yes | Yes | Yes | Yes | Yes (Java) | Yes | Yes | Yes | Yes | Yes | |
| Scalate | Scala, Java | Apache License | Yes | Yes | Yes | Yes | Yes | Yes (Scala) | Yes | Yes | ||||
| Scurvy | PHP | GNU GPL | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | ||
| Simphple | PHP | GNU LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | No | Yes | Yes? | No | ||
| Smarty | PHP | GNU LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | Yes | Yes | ||
| StampTE | PHP | BSD | Yes | No | No | No | No | No | No | No | No | Yes | No | |
| StringTemplate | Java (native), Python, C# | BSD[2] | Yes | No | Yes | Yes | Yes | No | No | No | No | |||
| SUIT Framework | PHP, Python | GNU LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
| Template Attribute Language | Python, PHP 5 | open-source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
| Twital | PHP 5.3 | open-source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
| Template Blocks | PHP 5 | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | ||||
| Template Toolkit | Perl, Python | open-source | Yes | Yes | Yes | Yes | Yes | Yes (Perl) | Yes | Yes | ||||
| Thymeleaf | Java | Apache License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |
| TinyButStrong | PHP | GNU LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Tonic | PHP | BSD | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | |
| Toupl | Any with OOP and String class support | Apache License | Yes[3] | Yes[3] | Yes[3] | Yes[3] | Yes[3] | Yes[3] | Yes[3] | Yes[3] | ||||
| Twig | PHP | BSD | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | |
| Twirl | Scala | Apache License | Yes | Yes | Yes | Yes | Yes | Yes (Scala) | Yes | Yes | ||||
| uBook Template | PHP | GPL | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | ||
| vlibTemplate | PHP | Artistic License | Yes | Yes | Yes | Yes | Yes | No | No | No | ||||
| WebMacro | Java | Apache License, GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
| ZeniTPL | PHP | new BSD | Yes | No | No | No | Yes | No | Yes | No | ||||
| BabaJS | JavaScript | Open Source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ||
| Rage | JavaScript, | GPL v 3.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | ||
| PlannerFw | JavaScript, PHP, Java, ASP.NET, Python, Perl, Ruby, Node.js, and more | GPL v 3.0, Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
LEGEND:
- Engine (implementation) = engine name
- Languages = implementation language of the engine (not the template script language)
- License = Software license agreement
- Platform = Computing platform
- Variables = script language power to use variables
- Functions = script language power to use functions
- Includes = script language power include external files
- Conditional inclusion = script language power to conditional includes
- Looping = script language power to do loops (for, while) or recursion
- Evaluation (language) = script language power to do "eval command" (to the implementation language)
- Assignment = set names and references to sub-templates (?)
- Errors and exceptions = engine output script errors.
- i18n = Internationalization and localization feature
- Natural templates = the template can be a document as valid as the final result, the engine syntax doesn't break the document's structure
- Inheritance = Supports the ability to inherit a layout from a parent template, separately overriding arbitrary sections of the parent template's content.
For inclusion above
- Paperclip (JavaScript/DOM/Node template engine) - fast, reactive templates.
- Twirl (Scala: Template engine) - a clone of the Play Framework's template engine.
- Embedded Perl(Mojolicious: Embedded Perl) - Embedded Perl is a powerful templating engine for use with the Mojolicious Web Framework. It supports variables, functions, includes, conditional inclusion, looping, evaluation, assignment, exceptions, i18n, natural templates, and inheritance.[4]
- erlydtl erlydtl django for erlang
- Elisa Simple and powerful PHP Template Engine
- Latte, template engine originating from Nette Framework
- Foil
- PH7 Engine
- Haanga
- TPLN
See also
- Template processor
- Category:Template engines
References
- ↑ JavaServer(TM) Pages Implementation
- ↑ http://www.stringtemplate.org/license.html
- 1 2 3 4 5 6 7 8 Toupl is only a compiler. Features depend on target language
- ↑ http://mojolicio.us/
This article is issued from Wikipedia - version of the Thursday, March 24, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.