A Delphi templating engine for dynamic text generation in emails, HTML, reports, source code, and configuration files.
Sempare Template Engine is a lightweight templating and scripting engine for Delphi (Object Pascal) that enables flexible dynamic text generation. It provides a simple API for embedding logic and data into templates, solving the problem of customizing text by substituting variables with values from various data sources. It is designed for server-side web scripting, code generation, mail merge, and notification systems.
Delphi developers building applications that require dynamic text generation, such as web applications using frameworks like WebBroker, Horse, Synopse mORMot, or DelphiMVCFramework, or those needing code generation, mail merge, or notification systems.
Developers choose Sempare Template Engine for its lightweight, extensible design that integrates seamlessly with Delphi's RTTI and supports a wide range of data types, including records, classes, arrays, JSON objects, and TDataSet descendants. Its dual-licensing (Apache v2.0 and commercial) offers flexibility, and it emphasizes keeping complex logic in native Object Pascal via custom functions rather than within templates.
Sempare Template (scripting) Engine for Delphi allows for flexible dynamic text generation. It can be used for generating email, html, reports, source code, xml, configuration, etc.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Described as a 'small templating engine' with a simple API, it integrates easily without heavy dependencies, ideal for Delphi projects where minimal footprint is valued.
Supports dereferencing of records, classes, arrays, JSON objects, and TDataSet descendants, enabling seamless data binding and reducing boilerplate code for complex types.
Works across Windows, Linux, macOS, and Android, with tested support from Delphi XE4 to newer versions, ensuring broad deployment flexibility.
Offers custom functions, token replacement, whitespace stripping, and max run-time protection, allowing tailored templates while preventing infinite loops or security risks.
Limited to Delphi/Object Pascal environments, which restricts use in mixed-technology stacks and reduces community size compared to cross-language templating engines.
Encourages keeping complex logic in Object Pascal via custom functions, per the philosophy, increasing development time for template-heavy applications that might benefit from inline scripting.
Dual-licensing with commercial fees for support and enhancements, as noted in the README, can be a barrier for budget-constrained open-source projects or small teams.