# Serwus
Helpers for building actix-web/diesel based services.
[](https://crates.io/crates/serwus)
[](https://docs.rs/serwus)

[](https://deps.rs/crate/serwus/0.2.2)
[](https://github.com/sfisol/serwus/actions/workflows/pipeline.yaml)
[](https://crates.io/crates/serwus)
## Features
* **MultiPool** - Master/replica-aware wrapper for `r2d2`
* **StatsPresenter** - Framework for readiness and statistics reporting
* **JsonError** - Middleware that makes actix-web return errors as JSONs
## Example
```rust
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
}
```