1 unstable release
new 0.0.1-pre.0 | Feb 21, 2025 |
---|
#106 in Template engine
28KB
320 lines
askama_web
A compatibility add-on for askama to support many different web frameworks.
Example
E.g. if you are using axum, then add askama_web
with
the feature "axum-0.8"
to your Cargo.toml
:
[dependencies]
askama_web = { version = "0.0.1-pre.0", features = ["axum-0.8"] }
Then just add #[derive(WebTemplate)]
to your Askama templated struct
or enum
:
use askama::Template;
use askama_web::WebTemplate;
use axum::Router;
use axum::routing::get;
#[derive(Template, WebTemplate)]
#[template(path = "hello.html")]
struct HelloTemplate {
name: String,
}
async fn hello() -> HelloTemplate {
HelloTemplate {
name: "world".to_string(),
}
}
let app = Router::new().route("/", get(hello));
By selecting the feature "axum-0.8"
, HelloTemplate
will implement axum::response::IntoResponse
.
The user will receive a "Status: 200", "Content-Type: text/html; charset=utf-8"
response with the rendered struct as body.
Feature flags / web framework selection
These web frameworks are currently implemented and can be selected with their respective feature flag:
"actix-web-4"
: actix-web in version4.x.y
"axum-0.8"
: axum in version0.8.y
"poem-3"
: poem in version3.x.y
"rocket-0.5"
: rocket in version0.5.y
"warp-0.3"
: warp in version0.3.y
As well as these logging / debugging facilities to print error message if a template could not be rendered:
"eprintln"
: using rust's built-ineprintln!()
macro"log-0.4"
: using log as logging framework"tracing-0.1"
: using tracing as logging framework
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
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.
Dependencies
~1–34MB
~524K SLoC