sessions 0.2.1

General sessions module for web services
Documentation

Features

  • Async/await

  • Easy custom Storages

  • Stores the values in a Map<String, Value> based on serde_json

Example

sessions = { version = "0.2", features = ["memory"] }
use std::sync::Arc;
use sessions::*;

let config = Arc::new(Config {
  cookie: CookieOptions::new(),
  storage: Arc::new(MemoryStorage::new()),
  //storage: Arc::new(RedisStorage::new(RedisClient::open("redis://127.0.0.1")?)),
  generate: Box::new(|| nano_id::base64(32)),
  verify: Box::new(|sid: &str| sid.len() == 32),
});


let session = Session::new(&config.generate(), 0, config.clone());
session.set::<String>("crate", "sessions".to_string());
let val: Option<String> = session.get("crate");
session.remove("crate");
session.clear();

session.save().await;
session.renew().await;
session.destroy().await;

Storages

  • Memory
  • Redis
  • sled
  • Memcached
  • Mongodb
  • PostgreSQL
  • MySQL/MariaDB

License