21个版本 (1个稳定版)

1.0.0 2024年2月1日
0.9.0 2021年1月31日
0.8.3 2020年12月25日
0.8.1 2020年9月27日
0.3.1 2020年3月27日

数据库接口中排名558

Download history 80/week @ 2024-03-30 22/week @ 2024-04-06 9/week @ 2024-04-20 115/week @ 2024-04-27 132/week @ 2024-05-04 31/week @ 2024-05-11 93/week @ 2024-06-29

每月下载量93

Apache-2.0

39KB
942

Diesel Adapter for Casbin-RS (Rust)

Crates.io Docs CI codecov

Diesel适配器是Diesel的适配器,用于Casbin-rs。使用这个库,Casbin可以从Diesel支持的数据库中加载策略或将策略保存到其中。

基于Diesel,当前支持的数据库有

注意postgresmysqlsqlite是互斥的,这意味着您只能激活其中一个。

注意

为了统一Casbin生态系统中的数据库表名,我们决定从版本0.9.0开始使用casbin_rule而不是casbin_rules。如果您在生产环境中使用旧版本的diesel-adapter,请使用以下命令并更新diesel-adapter版本

# MySQL & PostgreSQL & SQLite
ALTER TABLE casbin_rules RENAME TO casbin_rule;

安装

将其添加到Cargo.toml

diesel-adapter = { version = "0.9.0", features = ["postgres"] }
tokio = { version = "1.1.1", features = ["macros", "rt-multi-thread"] }

警告tokio v1.0或更高版本从diesel-adapter v0.9.0开始支持,我们建议您升级相关组件以确保它们正常工作。支持tokio v0.2的最后一个版本是diesel-adapter v0.8.3,您可以根据需要选择。

配置

配置env

sample.env 重命名为 .env 并将 DATABASE_URLPOOL_SIZE 放在里面

DATABASE_URL=postgres://casbin_rs:casbin_rs@localhost:5432/casbin
# DATABASE_URL=mysql://casbin_rs:casbin_rs@localhost:3306/casbin
# DATABASE_URL=casbin.db
POOL_SIZE=8

或者你可以导出 DATABASE_URLPOOL_SIZE

export DATABASE_URL=postgres://casbin_rs:casbin_rs@localhost:5432/casbin
export POOL_SIZE=8

示例

use diesel_adapter::casbin::prelude::*;
use diesel_adapter::DieselAdapter;

#[tokio::main]
async fn main() -> Result<()> {
    let mut m = DefaultModel::from_file("examples/rbac_model.conf").await?;
    let a = DieselAdapter::new("postgres://casbin_rs:[email protected]:5432/casbin", 8)?;
    let mut e = Enforcer::new(m, a).await?;
    Ok(())
}

依赖项

~31-45MB
~753K SLoC