Comparison
The following table lists the various template engines discussed on Wikipedia and a brief rundown of their features. The content here is a work-in-progress.
Engine (Implementation) | Languages | License | Platform | Variables | Functions | Includes | Conditional Inclusion | Looping | Evaluation (Language) | Assignment | Errors & Exceptions | i18n | Natural Templates | Inheritance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Apache Velocity | Java, C# | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | ||
ASP.NET (Microsoft) | C#, VB.NET | Proprietary | Microsoft Windows | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
ASP.NET (Mono) | C# | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
AutoGen | C | GPL license | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |
Beilpuz | PHP 5 | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
Blitz | PHP 5, PHP (C-module) | BSD-like | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
Casper | Java, JavaScript | MIT | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
CheetahTemplate | Python | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Chip Template Engine | PHP, Perl | open-source? | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | No | |||
Chunk Templates | Java | open-source | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes |
CodeCharge Studio | Classic ASP, C#, VB.NET, PHP, Perl, Java/JSP, ColdFusion | Proprietary | Microsoft Windows | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |
ColdFusion | CFML, CFScript | Proprietary | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Cottle | C# | BSD License | Microsoft Windows | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No | |
csharptemplates | C# | New BSD | .NET | Yes | No | No | No | No | No | No | No | |||
CTPP | C, C++, Perl, PHP, Python | BSD-like | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | No | Yes | |||
dbPager | C++ | GNU GPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Deihro TemplateEngine | PHP | Open source | Cross-platform | Yes | Yes | indirect | No | No | No | No | No | |||
Dermis | Classic ASP | MIT License | Microsoft Windows | Yes | No | Yes | No | Yes | No | Yes | No | |||
Django | Python | BSD-like | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Djolt-objc | Objective-C | Apache License | iPhone/MacOS | Yes | No | No | No | Yes | No | No | No | |||
Dwoo | PHP 5 | BSD License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | |||
Dylan Server Pages | Dylan language | unknown | unknown | Yes | Yes | Yes | Yes | No? | No | No | No | |||
Engine (Implementation) | Languages | License | Platform | Variables | Functions | Includes | Conditional Inclusion | Looping | Evaluation (Language) | Assignment | Errors & Exceptions | i18n | Natural Templates | Inheritance |
ECT | JavaScript | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (CoffeeScript) | Yes | Yes | Yes | ||
eRuby | Ruby | GPL / Ruby License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Evoque Templating | Python, Py3K | AFL v3.0 | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | No | Yes | |||
FastTemplate | PHP | Artistic License | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | No | |||
FigDice | PHP 5 | GPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
FreeMarker | Java | BSD-like | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | ||
Genshi (templating language) | Python | BSD-like | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | ||
Google-ctemplate | C++ | BSD License | Cross-platform | Yes | No | Yes | Yes | Yes | No | No | No | |||
Grantlee Template System | C++/Qt | LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
GvTags | Groovy | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Groovy) | Yes | No | |||
H2o | PHP, Ruby | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
HAH | PHP | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | No | |||
Haml | Ruby, PHP (WIP) | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Ruby) | Yes | Yes | |||
Hamlets | Java | BSD | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
Hyperkit PHP/XML Template Engine | PHP, XML | open-source | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Histone template Engine | PHP, Java, JavaScript | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
Jade | JavaScript, Java | open-source | Cross-platform | Yes | Yes | Yes | ||||||||
JavaServer Pages | Java | Proprietary | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Jenner | JavaScript | LGPL | In-Browser | Yes | Yes | No | No | Yes | Yes | Yes (if allowed by hosting application) | Yes | |||
jin-template | Java, PHP | LGPL | Cross-platform | Yes | No | No | No | No | No | Yes | No | |||
Jinja | Python | BSD | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | No | |||
Jinja2 | Python | BSD | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | ||
JScore | PHP + JS | Proprietary | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
JSP Weaver | Java | Proprietary | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Engine (Implementation) | Languages | License | Platform | Variables | Functions | Includes | Conditional Inclusion | Looping | Evaluation (Language) | Assignment | Errors & Exceptions | i18n | Natural Templates | Inheritance |
Kalahari | Python | BSD-like | Cross-platform | Yes | Yes | Through inheritance | No | Yes | No | Yes | Yes | |||
Kid (templating language) | Python | MIT | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | |||
Mako | Python | MIT | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | |||
Mars-Templater | PHP 5 | MIT License | Cross-platform | Yes | No | No | Yes | Yes | No | No | No | |||
MiniTemplator | PHP, Java, VB.NET | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | No | No? | |||
mTemplate | PHP | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |
nTPL | node.js, JavaScript | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Obyx | Obyx | GNU GPL | Unix/Mac OS X | Yes | Yes | Yes | Yes | Yes | Yes (Obyx) | Yes | Yes | Yes | Yes | |
Open Power Template | PHP 5 | BSD-like | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | |||
Outline | PHP 5 | open-source | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | |||
PHAML | PHP | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | |||
Phammable | PHP 5 | GNU GPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | |||
PHP | PHP | PHP License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |
PURE Unobtrusive Rendering Engine | Javascript | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
pyratemp | Python | MIT | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | No | |||
QueryTemplates | PHP 5, JavaScript | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Railo | CFML | LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (CFML) | Yes | Yes | Yes | Yes | Yes |
RainTPL | PHP | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | |||
Rythm | Java | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Java) | Yes | Yes | No | ||
Scalate | Scala, Java | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Scala) | Yes | Yes | |||
Scurvy | PHP | GNU GPL | Cross-platform | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | |
Simplate | PHP | GPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Simphple | PHP | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | No | Yes | Yes? | No | |
Smarty | PHP | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | Yes | Yes | |
StampTE | PHP | BSD | Cross-platform | Yes | No | No | No | No | No | No | No | No | Yes | No |
StringTemplate | Java (native), Python, C# | BSD | Cross-platform | Yes | No | Yes | Yes | Yes | No | No | No | No | ||
SUIT Framework | PHP, Python | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Engine (Implementation) | Languages | License | Platform | Variables | Functions | Includes | Conditional Inclusion | Looping | Evaluation (Language) | Assignment | Errors & Exceptions | i18n | Natural Templates | Inheritance |
/ Talus' TPL | ||||||||||||||
Template Attribute Language | Python, PHP 5 | open-source | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
ATal | PHP 5.3 | open-source | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Template Blocks | PHP 5 | GNU GPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | |||
Template Toolkit | Perl, Python | open-source | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (Perl) | Yes | Yes | |||
Thymeleaf | Java | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
TinyButStrong | PHP | GNU LGPL | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Toupl | Any with OOP and String class support | Apache License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Twig | PHP | BSD | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | |
uBook Template | PHP | GPL | Cross-platform | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | |
Vemplator | PHP | MIT License | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | No | No | |||
vlibTemplate | PHP | Artistic License | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | No | No | |||
WebMacro | Java | open-source? | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Younicycle | PHP 5, JavaScript, ActionScript | Proprietary | Cross-platform | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
ZeniTPL | PHP | new BSD | Cross-platform | Yes | No | No | No | Yes | No | Yes | No | |||
BabaJS | Javascript | Open Source | Cross-platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | |
Engine (Implementation) | Languages | License | Platform | Variables | Functions | Includes | Conditional Inclusion | Looping | Evaluation (Language) | Assignment | Errors & Exceptions | i18n | Natural Templates | Inheritance |
LEGEND:
- Engine (Implementation)= engine name
- Languages= implemention 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 implemention language)
- Assignment= set names and references to sub-templates (?)
- Errors & 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.
Read more about this topic: Template Engine (web)
Famous quotes containing the word comparison:
“Away with the cant of Measures, not men!Mthe idle supposition that it is the harness and not the horses that draw the chariot along. No, Sir, if the comparison must be made, if the distinction must be taken, men are everything, measures comparatively nothing.”
—George Canning (17701827)
“But the best read naturalist who lends an entire and devout attention to truth, will see that there remains much to learn of his relation to the world, and that it is not to be learned by any addition or subtraction or other comparison of known quantities, but is arrived at by untaught sallies of the spirit, by a continual self-recovery, and by entire humility.”
—Ralph Waldo Emerson (18031882)
“In comparison to the French Revolution, the American Revolution has come to seem a parochial and rather dull event. This, despite the fact that the American Revolution was successfulrealizing the purposes of the revolutionaries and establishing a durable political regimewhile the French Revolution was a resounding failure, devouring its own children and leading to an imperial despotism, followed by an eventual restoration of the monarchy.”
—Irving Kristol (b. 1920)