casbin-rb-adapter

Crates.iocasbin-rb-adapter
lib.rscasbin-rb-adapter
version0.1.9
sourcesrc
created_at2024-06-10 15:09:08.464327
updated_at2024-06-27 14:53:11.669343
descriptionRbatis adapter for casbin, support database save and load rules.
homepage
repositoryhttps://github.com/cody-why/casbin-rb-adapter
max_upload_size
id1267264
size108,179
plucky (cody-why)

documentation

https://docs.rs/crate/casbin-rb-adapter/

README

Crates.io Docs Download

Casbin Rbatis adapter

Rbatis adapter for casbin. With this library, Casbin can load policy or save policy from Rbatis supported databases.

Supported databases, see Rbatis

  • MySQL
  • PostgreSQL
  • SQLite
  • MSSQL
  • ...

Casbin online editor

Get started

Add the following to Cargo.toml:

[dependencies]
casbin-rb-adapter = "0.1"
# casbin or use casbin_rb_adapter::casbin
casbin = "2"

# rbatis integration
rbs = "4"
rbatis = "4"

# choose rbatis driver
# rbdc-mysql = "*"
# rbdc-pg = "*"
# rbdc-sqlite= "*"
# rbdc-mssql = "*"

// or use your project Rbatis static instance
let rb = RBatis::new();
rb.init(MysqlDriver {}, url).unwrap();

let adapter = RbatisAdapter::new(&rb).await?;
// need to call db_sync() to create tables in database
// adapter.db_sync().await?;

let mut e = Enforcer::new("examples/rbac_model.conf", adapter).await?;

// e.enforce((sub, obj, act)).await?;

features:

  • tracing logger for Adapter,
  • runtime-tokio runtime for casbin.
  • runtime-async-std runtime for casbin.

Example

examples/mysql_sample.rs

How to run examples:

You need to create a .env file in the project root directory, and add the following configuration:

DATABASE_URL=mysql://root:123456@localhost:3306/casbin

update log

  • v0.1.9: add runtime-tokio and runtime-async-std features for casbin, add tracing feature logger for Adapter. default feature runtime-tokio.
Commit count: 3

cargo fmt