#casbin #adapter #rbac #rbatis #save-load

casbin-rb-adapter

Rbatis adapter for casbin, support database save and load rules

6 releases

0.1.9 Jun 27, 2024
0.1.8 Jun 27, 2024

#466 in Database interfaces

Download history 273/week @ 2024-06-08 24/week @ 2024-06-15 530/week @ 2024-06-22 79/week @ 2024-06-29 2/week @ 2024-07-06

339 downloads per month

Apache-2.0

33KB
674 lines

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.

Dependencies

~18–32MB
~521K SLoC