3个版本
0.2.2 | 2023年9月30日 |
---|---|
0.2.1 | 2023年9月18日 |
0.2.0 | 2023年9月16日 |
#1419 在 HTTP服务器
每月22次下载
40KB
683 行
web-base
web_base 是一个开源的 Rust 包,旨在通过提供构建Web应用程序的实用程序和配置集合来简化Web应用程序的开发。
特性
- 网站配置:web_base 提供了一个 Site 结构体,允许您配置Web应用程序的各个方面,包括
- Bootstrap样式:启用或禁用网站的Bootstrap样式。
- CSRF保护:启用或禁用跨站请求伪造(CSRF)保护功能。
- PicoCSS支持:启用或禁用PicoCSS以处理轻量级CSS。
- htmx集成:启用或禁用htmx以增强交互性。
- 内容缩放:启用或禁用不同屏幕大小的内内容缩放。
- favicon配置:设置网站的favicon URL。
- 自定义头部内容:向Web页面的部分添加自定义HTML内容。
- 实用程序:web_base 提供了一组实用函数来简化常见的Web开发任务
- 解析查询字符串:轻松将查询字符串解析为键值对。
- 检测浏览器:检查传入请求是否来自Web浏览器。
- 检测Onion和I2P流量:识别来自Onion和I2P网络的请求。
- 动态链接生成:根据请求的来源生成链接,允许灵活的链接处理。
- 基于Actix Web:map!宏简化了创建具有特定配置和中间件的Actix Web HTTP服务器的过程。它根据网站配置自动设置各种服务器配置,使创建Actix Web服务器更加容易。
示例
web_base 为其特性提供了一些示例和用例。请检查文档和代码示例,了解如何利用此库满足您的Web应用程序需求。
入门
要在项目中使用此包,您必须在 Cargo.toml
中添加 tokio
和 actix-web
。
运行 examples
目录中的某些示例,或将其用作基础
use actix_web::{get, HttpRequest, Responder};
use maud::html;
#[get("/")]
pub(crate) async fn index(r: HttpRequest) -> impl Responder {
let content = html!(
p { "Hello World" };
)
.into_string();
web_base::func::build_site(&r, "Index", &content)
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
web_base::map!(
web_base::Site::new()
.enable_bootstrap(false)
.enable_picocss(false),
|app: actix_web::App<_>| { app.service(index) }
)
.bind(("0.0.0.0".to_string(), 8080))?
.run()
.await
}
依赖关系
~16–29MB
~512K SLoC