Tenjin
News
- (2012-02-16) pyTenjin 1.1.0 released
- (2011-11-27) rbTenjin 0.7.1 released
- (2011-11-24) rbTenjin 0.7.0 released
- (2011-04-29) pyTenjin 1.0.2 released
- (2011-02-22) pyTenjin 1.0.1 released
- (2011-02-21) pyTenjin 1.0.0 released
Introduction
Tenjin is a very fast and full-featured template engine available in several script languages.
How fast Tenjin is? The following is a result of benchmark to generate 340 lines per page x 10,000 pages (this benchmark script is included in Tenjin package). Test#1 creates and destroys template object for each time. This test is intended to represent CGI. Test#2 creates template object only once and reuse it for each time. This test is intended to represent mod_perl, mod_python, or FastCGI.
Language | Template Engine | Test#1(sec) | Test#2(sec) |
---|---|---|---|
Python(2.5.1) | pyTenjin (0.6.1) | 6.96 | 5.61 |
Cheetah (2.0) | 20.36 | 19.82 | |
Django (0.9.5) | 71.33 | 59.80 | |
Myghty (1.1) | 107.88 | 19.30 | |
Kid (0.9.6) | 380.24 | 378.96 | |
Genshi (0.4.4) | 560.30 | 271.69 | |
Mako (0.1.9) | 17.78 | 13.49 | |
Templetor (web.py 0.22) | 428.19 | 61.53 | |
Ruby(1.8.6) | rbTenjin (0.6.0) | 7.34 | 4.52 |
eruby (1.0.5) | 12.29 | 11.53 | |
ERB(def_method) (Ruby1.8.6) | 36.73 | 5.85 | |
PHP(5.2.0) | phpTenjin (0.0.1) | 5.39 | 3.64 |
Smarty (2.6.18) | 10.84 | 10.21 | |
Perl(5.8.8) | plTenjin (0.0.1) | 10.42 | 5.72 |
Template-Toolkit(XS) (2.18) | 103.58 | 26.30 | |
HTML::Template (2.9) | 46.70 | 30.21 | |
JS(spidermonkey) | jsTenjin (0.0.1) | 19.00 | 12.98 |
JS(Rhino, JDK5) | jsTenjin (0.0.1) | 24.29 | 19.15 |
Java(JDK5) | Velocity (1.4) | 22.80 | 11.41 |
Velocity (1.5) | 20.01 | 8.42 |
The following is a graph to show number of pages per second.

This benchmark shows that Tenjin is about:
- 3 times faster than Cheetah.
- 3 times faster than Smarty.
- 5 times faster than Template-Toolkit.
- 9 times faster than Django.
- 60 times faster than Kid.
- Twice faster than Velocity. (Dynamic Java is slower than script languages!)
In addition to its high performance, Tenjin has the following features.
- Nestable layout template
- Include other templates
- Capture part of template and override layout template by captured content
- File caching and memory caching (functionalize) support
- Specifing template arguments (=variables passed from main programs)
- Preprocessing (which make your application much faster)
- YAML or JSON datafile support
- Available in Perl, Ruby, PHP, Perl, and JavaScript
See User's Guide and FAQ for details.
Download and Documents
- Python
-
- Tenjin-1.1.0.tar.gz (2012-02-16)
- User's Guide, Changes, Examples
- JavaScript
-
- Download from SourceForge.net
- User's Guide, Changes, Examples, FAQ,
- Perl
-
- Download from SourceForge.net
- User's Guide, Changes, Examples, FAQ,
- PHP
-
- Download from SourceForge.net
- User's Guide, Changes, Examples, FAQ,
Presentation
- 2011 PyCon mini JP Presenttion
- YAPC::ASIA 2008 Presentation (English)
- 2007 LL Spirit LightningTalk (full-version) (Japanese)
License
MIT License