CTPP Template Engine

The CTPP template engine is a tool for C++ built to separate data processing (business logic) from data presentation. The CTPP template engine is convenient for projects where the programmer and the web designer will have to both work on the web templates. The goal of the CTPP template engine is to achieve maximum performance with minimal basic easily expandable functionality. More capabilities can be added by writing users functions.


  • Very high performance. The CTPP template engine is written entirely in C++ and very fast. CTPP does not spend time on interpreting the original code or on loading the execution environment. At the same time, CTPP library is faster than the well-known projects like Xalan-C or libxslt because it does not carry additional often superfluous functionality that costs in performance.
  • Flexible syntax of templates. If you are accustomed to the syntax of Smarty, HTML::Template or Text::Template, you can configure CTPP to “understand” your old templates. Certainly there will be little adjustments, but typically there will be no problems converting to the new engine.
  • Robustness. Since the areas of control of the programmer and the HTML designer are completely isolated there is no risk of breaking the logic by a wrong layout. Regardless of the HTML design the project will function exactly as developed by the programmer according to the functional specifications.
  • Portability. CTPP library supports equally well Linux, FreeBSD and Solaris.
  • Support for implementations in the language of your choice. CTPP has C, C++, Perl5, PHP4, and PHP5 interfaces. It means that you can attach this library to any project written in popular programming languages.
  • Unlimited levels of nested cycles and conditions.
  • User functions. New functions can be added as needed in order to customize formatting data for the UI.
  • Output data filters. The template engine allows modifying the output data; for example, to add data compression with gzip or to add support for PHP-like session mechanism
  • Various template sources. Templates can be read from disk, from shared memory or from any other data source.