CTPP (or CT++) is a template engine completely written in C++. It has bindings for Perl, PHP and Python languages.

Stable release
2.8.2 / August 15, 2012 (2012-08-15)
Written inC++
Typelibrary or framework
LicenseBSD License


  • Performance
  • Flexible syntax of templates
  • Robustness
  • Portability
  • Support for implementations in the language of your choice
  • Unlimited levels of nested cycles and conditions
  • User functions


The MVC paradigm divides an application into three basic entities: a set of Models, a Controller, and the View.

A classic implementation completely isolates these entities from each other. It is assumed that a View doesn’t process any data and only renders a corresponding object model according to the template, that a Controller is only used to determine the list of executed models, and that Models represent entirely abstract data sets and rules that govern the data.

This paradigm allows separating the functions of a web designer, a programmer and a manager. A lot of the code can be reused. In addition a project has a single entry point which facilitates its upgrading and development.

As represented in the diagram below the architecture of the template engine consists of 4 subsystems: a template compiler which converts the text of the page template into bytecode, a virtual machine which executes the bytecode, a caching system for templates, and a library of data processor functions.

External linksEdit