Comparison of web template engines

From Wikipedia, the free encyclopedia
  (Redirected from Template engine (web))
Jump to: navigation, search

The following table lists the various Web Template Engines discussed on Wikipedia 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
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
Beilpuz PHP 5 GNU LGPL Yes Yes Yes Yes Yes No Yes 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
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# BSD 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
Deihro TemplateEngine PHP Open source Yes Yes indirect No No No No No
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
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
Evoque Templating Python, Py3K AFL v3.0 Yes Yes Yes Yes Yes Yes (Python) No Yes
FastTemplate PHP Artistic License Yes Yes Yes Yes Yes No Yes No
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 Yes 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
Jade JavaScript MIT License Yes Yes Yes Yes
JavaServer Pages Java CDDL + GPL License[1] Yes Yes Yes Yes Yes Yes Yes Yes
Jenner JavaScript LGPL Yes Yes No No Yes Yes Yes (if allowed by hosting application) 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
Mako Python MIT Yes Yes Yes Yes Yes Yes (Python) 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?
MulleScionTemplates Objective-C BSD-like Yes Yes Yes Yes Yes Yes (Objective-C) Yes No No Yes
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
Railo CFML LGPL Yes Yes Yes Yes Yes Yes (CFML) 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
Simplate PHP GPL Yes Yes Yes Yes Yes Yes Yes Yes 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
/ Talus' TPL
Template Attribute Language Python, PHP 5 open-source Yes Yes Yes Yes Yes Yes Yes Yes Yes
ATal PHP 5.3 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
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 Yes
Twirl Scala Apache Yes
uBook Template PHP GPL Yes No No No Yes No Yes Yes No Yes
Vemplator PHP MIT License Yes Yes Yes Yes Yes Yes (PHP) No No
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
Younicycle PHP 5, JavaScript, ActionScript Proprietary Yes Yes Yes Yes Yes No 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 No

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[edit]

  • Paperclip (JavaScript/DOM/Node template engine) - fast, reactive templates.
  • Twirl (Scala: Template engine) - a clone of the Play Framework's template engine.
  • Blade (Laravel: Template engine) - Blade is a simple, yet powerful templating engine provided with Laravel PHP Framework

See also[edit]

References[edit]