#html-templating #html #template #hypermedia #web-apps #define


Common types definitions for hypersynthetic and hypersynthetic_macros

2 releases

0.1.1 Aug 19, 2023
0.1.0 Aug 19, 2023

#463 in Template engine

31 downloads per month


111 lines


Hypersynthetic is a library for writing HTML inside Rust. It is inspired by JSX and HEEx templates, and tries to be different from Tera and Minijinja in one key aspect: it only allows reusing HTML code via composition not via inheritance. It is suitable for building traditional web applications, where backend responds with HTML.

Here is an example of what hypersynthetic can do:


use hypersynthetic::prelude::*;

fn TodoItem(text: &str, done: bool) -> HtmlFragment {
    let text_decoration = if done { "line-through" } else { "none" };

    html! {
        <li style="text-decoration: {text_decoration};">

fn main() {
    let todo_list = vec![
        ("Buy Milk", true),
        ("Read Rust Book", false),
        ("Write Web App using html! macro", false),

    let rendered_list = html! {
            <TodoItem :for={(text, done) in todo_list} text={text} done={done} />

    // ... Render `rendered_list` into your application.

In this example:

The TodoItem component displays a to-do item, striking it through if it’s done. The main function defines a list of to-dos and uses the :for attribute to loop over them, rendering each one using the TodoItem component.


  • rocket: Enables integration with the Rocket web framework and allows to return HtmlFragment from handlers. To use this feature, add features = ["rocket"] in your Cargo.toml when adding this library as a dependency.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps