A fast, powerful, safe and lightweight scripting language and engine for .NET, designed for text templating and general scripting.
Scriban is a fast, powerful, safe, and lightweight scripting language and engine for .NET, designed primarily for text templating with compatibility for Liquid templates. It solves the need for a versatile, efficient templating solution that can also serve as a general scripting engine, enabling developers to embed dynamic logic in applications.
.NET developers needing text templating, scripting capabilities, or migrating from Liquid templates, as well as those building applications requiring sandboxed script execution or AOT-compatible libraries.
Developers choose Scriban for its high performance, extensible sandbox model, Liquid compatibility, and robust feature set including async support and AOT readiness, making it a flexible and secure alternative to other .NET templating engines.
A fast, powerful, safe and lightweight scripting language and engine for .NET
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Parses Liquid templates via Template.ParseLiquid and can convert them to Scriban scripts using Template.ToText, facilitating smooth migration from Liquid-based systems as noted in the README.
Features an efficient lexer/parser and lightweight runtime, optimized for CPU and garbage collector efficiency, making it fast for text templating and scripting.
Provides extensible control over accessible .NET objects and methods through TemplateContext options, enabling safe script execution in untrusted environments as highlighted in the features.
The Liquid compatibility mode has documented restrictions and may not fully support all Liquid syntax variants, potentially causing issues for complex templates as admitted in the README.
Embedding Scriban source files requires specific project configurations and carries warnings about file modifications, adding setup overhead and risk of unintended changes.
By default, .NET members are renamed to lowercase with underscores, which can be confusing and requires additional configuration via MemberRenamer to change, as noted in the README warning.