# ructe **Repository Path**: mirrors_kornelski/ructe ## Basic Information - **Project Name**: ructe - **Description**: Rust Compiled Templates with static-file handling - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Rust Compiled Templates — ructe This is my attempt at writing a HTML template system for Rust. Some inspiration comes from the scala template system used in play 2, as well as plain old jsp. [](https://travis-ci.org/kaj/ructe) [](https://crates.io/crates/ructe) [](https://docs.rs/ructe) ## Design criteria * As many errors as possible should be caught at compile-time. * A compiled binary should include all the template code it needs, no need to read template files at runtime. * Compilation may take time, running should be fast. * Writing templates should be almost as easy as writing html. * The template language should be as expressive as possible. * It should be possible to write templates for any text-like format, not only html. * Any value that implements the `Display` trait should be outputable. * By default, all values should be html-escaped. There should be an easy but explicit way to output preformatted html. ## Current status Ructes is in a rather early stage, but does work; templates can be transpiled to rust functions, which are then compiled and can be called from rust code. ### Template format A template consists of three basic parts: First a preamble of `use` statements, each prepended by an @ sign. Secondly a declaration of the parameters the template takes. And third, the template body. The full syntax is described [in the documentation](https://docs.rs/ructe/~0.3/ructe/Template_syntax/index.html). Some examples can be seen in [examples/simple/templates](examples/simple/templates). A template may look something like this: ``` @use any::rust::Type; @use super::statics::style_css; @(name: &str, items: &[Type])