用途:面向单二进制 Web 应用的前端技术栈,适合服务端渲染 UI、轻量前端与单一可部署文件场景,使用 Axum + Askama + HTMX,无需 node_modules 与前端构建管线。
主要能力:Askama 模板编译进二进制并类型检查;HTMX 体积约 14kb、超媒体驱动、无需 JS 构建;cargo build --release 后即可部署,产物约 5-10MB。
依赖(Cargo.toml):askama = "0.12"、askama_axum = "0.4"、axum-htmx = "0.6"、tower-http = { version = "0.6", features = ["fs"] }(仅开发用静态文件)。HTMX 可从 CDN(https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js)加载或内嵌。
项目结构:src/lib.rs(API 与 create_app())、src/main.rs(服务入口)、src/error.rs(AppError)、src/templates/(mod.rs 模板结构、base.html 布局、pages/ 页面、partials/ 片段),另有 templates/ 目录供 Askama 默认查找。
使用方式:用 #[derive(Template)] 定义模板结构;页面模板用 hx-get/hx-post/hx-target/hx-swap 等属性发起请求并局部替换;处理函数可借助 axum_htmx 的 HxRequest 判断请求类型,返回整页或片段;响应头可用 HxRedirect、HxRefresh、HxTrigger。测试可用 axum_test::TestServer 验证整页与片段返回,并检查 HX-Request 头行为。
限制与注意:资料未提供收费、价格或授权信息。应避免整页刷新、复杂客户端 JS 状态管理、客户端路由和手动 DOM 操作;模板数据避免 unwrap(),需先处理错误。未提供完整安装步骤、版本兼容范围与生产部署细节。