#web-apps #web-server #actix-web #http-request #applications #configuration #site

已删除 web-base

构建Web应用程序的实用程序和配置集合

3个版本

0.2.2 2023年9月30日
0.2.1 2023年9月18日
0.2.0 2023年9月16日

#1419HTTP服务器

每月22次下载

MIT 许可证

40KB
683

web-base

web_base 是一个开源的 Rust 包,旨在通过提供构建Web应用程序的实用程序和配置集合来简化Web应用程序的开发。

特性

  1. 网站配置:web_base 提供了一个 Site 结构体,允许您配置Web应用程序的各个方面,包括
    • Bootstrap样式:启用或禁用网站的Bootstrap样式。
    • CSRF保护:启用或禁用跨站请求伪造(CSRF)保护功能。
    • PicoCSS支持:启用或禁用PicoCSS以处理轻量级CSS。
    • htmx集成:启用或禁用htmx以增强交互性。
    • 内容缩放:启用或禁用不同屏幕大小的内内容缩放。
    • favicon配置:设置网站的favicon URL。
    • 自定义头部内容:向Web页面的部分添加自定义HTML内容。
  2. 实用程序:web_base 提供了一组实用函数来简化常见的Web开发任务
    • 解析查询字符串:轻松将查询字符串解析为键值对。
    • 检测浏览器:检查传入请求是否来自Web浏览器。
    • 检测Onion和I2P流量:识别来自Onion和I2P网络的请求。
    • 动态链接生成:根据请求的来源生成链接,允许灵活的链接处理。
  3. 基于Actix Web:map!宏简化了创建具有特定配置和中间件的Actix Web HTTP服务器的过程。它根据网站配置自动设置各种服务器配置,使创建Actix Web服务器更加容易。

示例

web_base 为其特性提供了一些示例和用例。请检查文档和代码示例,了解如何利用此库满足您的Web应用程序需求。

入门

要在项目中使用此包,您必须在 Cargo.toml 中添加 tokioactix-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