rsession 0.2.1

A simple session manager for Rust
Documentation
mod axum;

use actix_web::{App, HttpServer};
use rsession::framework::actix::ActixSessionMiddleware;
use rsession::redis::RedisSessionStorage;
use rsession::{RandKey, Session};

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();
    HttpServer::new(move || {
        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:");
        App::new()
            .wrap(ActixSessionMiddleware::new(session.clone(), store.clone()))
            .route("/", actix_web::web::get().to(index))
    })
    .bind("127.0.0.1:8080")
    .unwrap()
    .run()
    .await
    .unwrap();
}

async fn index(session: Session) -> String {
    return 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())
    };
}