rsession 0.2.1

A simple session manager for Rust
Documentation
use rsession::RandKey;
use rsession::framework::salvo::{SalvoSessionMiddleware, SessionDepotExt};
use rsession::redis::RedisSessionStorage;
use salvo::prelude::*;

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();
    let redis = deadpool_redis::Config::from_url("redis://192.168.22.129:6379")
        .create_pool(Some(deadpool_redis::Runtime::Tokio1))
        .unwrap();

    let session = rsession::SessionBuilder::default();
    let mut store = RedisSessionStorage::new(redis, RandKey::UuidV7);
    store.set_prefix("actix_session:");
    let acceptor = TcpListener::new("0.0.0.0:8080").bind().await;
    let router = Router::new()
        .hoop(SalvoSessionMiddleware::new(session.clone(), store.clone()))
        .get(index);
    Server::new(acceptor).serve(router).await;
}

#[handler]
async fn index(_req: &mut Request, depot: &mut Depot, res: &mut Response, _ctrl: &mut FlowCtrl) {
    let session = depot.inner_session().unwrap();
    let r = if session.get::<i32>("count").is_err() {
        session.set("count", 1).ok();
        format!("count: {:?}", session.get::<i32>("count").unwrap())
    } else {
        let count = session.get::<i32>("count").unwrap();
        session.set("count", count + 1).ok();
        format!("count: {:?}", session.get::<i32>("count").unwrap())
    };
    res.body(r);
}