Comparison of web template engines

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The following table lists the various Web Template Engines used in Web template systems and a brief rundown of their features.

Engine (implementation) Languages License Variables Functions Includes Conditional inclusion Looping Evaluation (language) Assignment Errors and exceptions i18n Natural templates Inheritance
Apache Velocity Java, C# Apache Yes Yes Yes Yes Yes Yes Yes Yes ? ? No
ASP.NET (Microsoft) C#, VB.NET Proprietary Yes Yes Yes Yes Yes Yes Yes Yes ? ? ?
ASP.NET (Mono) C# LGPL Yes Yes Yes Yes Yes Yes Yes Yes ? ? ?
Laravel Blade PHP MIT Yes Yes Yes Yes Yes No Yes Yes Yes No Yes
CheetahTemplate Python BSD Yes Yes Yes Yes Yes Yes Yes Yes ? ? Yes
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
CTPP C, C++, Perl, PHP, Python BSD-like Yes Yes Yes Yes Yes No No Yes ? ? ?
Django Python BSD-like Yes Yes Yes Yes Yes Yes Yes Yes Yes ? Yes
eRuby Ruby GNU GPL / Ruby License Yes Yes Yes Yes Yes Yes Yes Yes ? ?
FreeMarker Java Apache 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 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
Haml Ruby, PHP (WIP) MIT Yes Yes Yes Yes Yes Yes (Ruby) Yes Yes ? ? ?
Hamlets Java BSD Yes Yes Yes Yes Yes No Yes Yes ? ? ?
JavaServer Pages Java CDDL + GNU GPL[1] Yes Yes Yes Yes Yes Yes Yes Yes ? ? ?
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
Kid (templating language) Python MIT Yes Yes Yes Yes Yes Yes (Python) Yes Yes ? ? ?
Lucee CFML LGPL Yes Yes Yes Yes Yes Yes (CFML) Yes Yes Yes Yes Yes
Mustache 30+ languages MIT Yes Yes Yes Yes Yes (foreach) No No Yes Yes Yes No
Open Power Template PHP 5 BSD-like Yes Yes Yes Yes Yes Yes (PHP) Yes Yes ? ? ?
PHP PHP PHP License Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
Razor C#, F#, VB.NET Apache Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Smarty PHP LGPL Yes Yes Yes Yes Yes Yes (PHP) Yes Yes? Yes ? Yes
Squirrelly JS MIT Yes Yes Yes Yes Yes Yes Yes Yes Yes No No
Template Attribute Language Various open-source Yes Yes Yes Yes Yes Yes Yes Yes Yes ? ?
Template Toolkit Perl, Python open-source Yes Yes Yes Yes Yes Yes (Perl) Yes Yes ? ? ?
Thymeleaf Java Apache Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
TinyButStrong PHP LGPL Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes ?
Twig PHP BSD Yes Yes Yes Yes Yes No Yes Yes Yes No Yes
vlibTemplate PHP Artistic License Yes Yes Yes Yes Yes No No No ? ? ?
web2py Python LGPL3 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
WebMacro Java Apache, GNU GPL Yes Yes Yes Yes Yes Yes Yes Yes ? ? ?
Engine (implementation) Languages License Variables Functions Includes Conditional inclusion Looping Evaluation (language) Assignment Errors and exceptions i18n Natural templates Inheritance
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.

See also[edit]

References[edit]