8 releases

new 0.2.2 Apr 14, 2024
0.2.1 Mar 1, 2024
0.2.0 Jan 20, 2024
0.1.4 Jan 16, 2024

#1792 in Procedural macros

Download history 20/week @ 2024-01-05 44/week @ 2024-01-12 9/week @ 2024-01-19 3/week @ 2024-02-23 123/week @ 2024-03-01 7/week @ 2024-03-08 8/week @ 2024-03-15 25/week @ 2024-03-29 28/week @ 2024-04-05

62 downloads per month
Used in templr

Apache-2.0

105KB
2.5K SLoC

templr

Documentation Latest version

A templ inspired rust template engine. templr generates Rust code from your templates at compile time using a macro.

Features

  • Template instantiation (with children!)
  • Context for passing info deep
  • Rust-like for, if-else, if-let, match, and let statements (allowed in start tags!)
  • Full rust variables
  • Opt-out HTML escaping
  • Nice attributes
  • We have a formatter: templrfmt!
  • Optional built-in support for Actix-Web, Axum, Gotham, Rocket, Salvo, Tide, and Warp web frameworks.

How to get started

First, add the templr dependancy to your crate's Cargo.toml:

cargo add templr

In any Rust file inside your crate, add the following:

use templr::{Template, templ, templ_ret};

pub fn hello(name: &str) -> templ_ret!['_] {
    templ! {
        <p>Hello, {name}!</p>
    }
}

fn main() {
    let html = hello("world").render(&()).unwrap();
    println!("{html}");
}

You should be able to compile and run this code.

Dependencies

~330–780KB
~19K SLoC