#actix-web #web-services #diesel #web #web-framework #actix

serwus

基于 actix-web/diesel 构建服务的辅助工具

4个版本

0.2.0 2024年4月22日
0.1.2 2024年1月9日
0.1.1 2023年12月21日
0.1.0 2023年9月26日

#420 in HTTP服务器

MIT/Apache 和可能 GPL-3.0-or-later

91KB
2K SLoC

Serwus

基于 actix-web/diesel 构建服务的辅助工具。

crates.io Documentation MIT or Apache 2.0 licensed Dependency Status CI downloads

功能

  • MultiPool - 对 r2d2 的主/副本感知包装器
  • StatsPresenter - 准备状态和统计报告框架
  • JsonError - 中间件,使 actix-web 以 JSON 返回错误

示例

use actix_web::web;
use serwus::{
    server::{Serwus, default_cors},
    EmptyStats
};

#[derive(Clone, EmptyStats)]
pub struct AppData;

async fn hello() -> &'static str {
    "Hello world\n"
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    let prepare_app_data = || AppData;

    Serwus::default()
        .start(
            prepare_app_data,
            |app| {
                app.route("/", web::get().to(hello));
            },
            default_cors,
        )
        .await
}

依赖项

~19–41MB
~736K SLoC