#session #sled #session-cookies #cookies #actix-web #embedded-database #actix

actix-sled-session

使用Sled嵌入式数据库的Actix Web会话后端

2个不稳定版本

0.2.0 2019年10月16日
0.1.0 2019年9月17日

#1254HTTP服务器

自定义许可

28KB
257

Actix Sled Session

使用Sled嵌入式数据库的Actix Web会话后端

此会话后端为每个尚未设置ID的传入请求设置一个唯一的cookie,并使用该ID作为键从Sled树中查找会话数据。

使用方法

更新你的Cargo.toml

[dependencies]
actix = "0.8"
actix-sled-session = "0.2"
actix-web = "1.0"

在你的项目中使用它

use actix::System;
use actix_web::{web, App, HttpServer};
use actix_sled_session::{Session, SledSession};

fn index(session: Session) -> String {
    if let Ok(Some(item)) = session.get::<usize>("item") {
        println!("item, {}", item);
        session.clear();
        return format!("Got item, {}", item);
    }

    let _ = session.set::<usize>("item", 3);
    String::from("Set item!")
}

fn main() -> Result<(), failure::Error> {
    let sys = System::new("example");
    let session_backend = SledSession::new_default()?;

    HttpServer::new(move || {
        App::new()
            .wrap(session_backend.clone())
            .route("/", web::get().to(index))
    })
        .bind("127.0.0.1:9876")?
        .start();

    sys.run()?;
    Ok(())
}

贡献

除非另有说明,否则对本项目的所有贡献都将根据CSL许可,但除外文件“许可”部分中列出的例外。

许可

本作品受合作软件许可协议的许可。这不是一个免费软件许可,但可能被视为“源可用许可”。对于大多数业余爱好者、自雇开发者、员工拥有的公司和合作社,只要在CSL的条款下分发此软件,就可以在大多数项目中使用此软件。有关更多信息,请参阅提供的LICENSE文件。如果不存在,可以在这里找到许可证。如果您是免费软件项目,希望根据GNU Affero通用公共许可证使用此软件,请通过[email protected]联系我,我们可以解决这个问题。如果您希望在任何其他许可下使用此项目,尤其是在专有软件中,答案很可能是不行。

依赖关系

~28MB
~594K SLoC