rstml-component (0.2.5)
Installation
[registries.forgejo]
index = "sparse+ " # Sparse index
# index = " " # Git
[net]
git-fetch-with-cli = truecargo add rstml-component@0.2.5 --registry forgejoAbout this package
rstml-component: HTML Component Library for Rust
rstml-component is a Rust library that empowers developers to create dynamic HTML components efficiently. With this library, you can define HTML components using Rust structs and easily generate HTML on-the-fly, making it especially useful for server-side applications that need to produce HTML content.
Features
-
Declarative Component Definition: Define HTML components using Rust structs, making your code more organized and maintainable.
-
Effortless HTML Generation: Generate HTML content dynamically by leveraging the power of Rust's expressive syntax.
-
Designed for Server-Side Applications: Perfectly suited for server applications that need to generate HTML content on-the-fly.
-
Template Reusability: Create reusable templates by structuring components, enhancing code reusability across your project.
Installation
To use rstml-component in your Rust project, simply add it as a dependency in your Cargo.toml:
[dependencies]
rstml-component = "0.2.1"
Usage
Here's a quick example to demonstrate how easy it is to define and use HTML components using rstml-component:
use rstml_component::{HtmlComponent, HtmlContent, HtmlFormatter};
#[derive(HtmlComponent)]
struct Page<T>
where
T: Into<String>,
{
title: T,
heading: String,
}
impl<T> HtmlContent for Page<T>
where
T: Into<String>,
{
fn fmt(self, formatter: &mut HtmlFormatter) -> std::fmt::Result {
write_html!(formatter,
<Template title=self.title attribute="world">
<h1>{self.heading}</h1>
<p>"This is a test"</p>
</Template>
)
}
}
// Example Axum handler - requires rstml-component-axum
async fn index() -> impl IntoResponse {
Page {
title: "My Title",
heading: "Page Heading",
}
.into_html()
}
For more detailed information and examples, please refer to our Documentation.
License
This project is licensed under the MIT License.
Dependencies
| ID | Version |
|---|---|
| ammonia | ^4 |
| bytes | ^1 |
| rstml-component-macro | ^0.2.4 |