https://github.com/casbin-rs/string-adapter
String adapter for Casbin-RS (Rust)
https://github.com/casbin-rs/string-adapter
abac acl adapter auth authorization authz casbin casbin-rs rbac rust string
Last synced: over 1 year ago
JSON representation
String adapter for Casbin-RS (Rust)
- Host: GitHub
- URL: https://github.com/casbin-rs/string-adapter
- Owner: casbin-rs
- License: apache-2.0
- Created: 2024-12-28T01:37:57.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-12-29T08:13:37.000Z (over 1 year ago)
- Last Synced: 2025-02-12T06:53:31.162Z (over 1 year ago)
- Topics: abac, acl, adapter, auth, authorization, authz, casbin, casbin-rs, rbac, rust, string
- Language: Rust
- Homepage: https://github.com/casbin/casbin-rs
- Size: 15.6 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# string-adapter
[](https://crates.io/crates/string-adapter)
[](https://docs.rs/string-adapter)
[](https://github.com/casbin-rs/string-adapter/actions/workflows/ci.yml)
[](https://codecov.io/gh/casbin-rs/string-adapter)
String Adapter is a String adapter for [casbin-rs](https://github.com/casbin/casbin-rs). With this library, Casbin can load policy from String.
## Install
Add the following to `Cargo.toml`:
```toml
string-adapter = { version = "1.1.0", default-features = false, features = ["runtime-tokio"]}
tokio = { version = "1.42.0", features = ["macros"] }
```
## Example
```rust
use casbin::{CoreApi, DefaultModel, Enforcer, Result};
use string_adapter::StringAdapter;
#[tokio::main]
async fn main() -> Result<()> {
let m = DefaultModel::from_file("examples/rbac_model.conf").await?;
let a = StringAdapter::new(
r#"
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
"#,
);
let e = Enforcer::new(m, a).await?;
Ok(())
}
```
## Features
- **runtime-async-std**: Use `async-std` as the runtime.
- **runtime-tokio**: Use `tokio` as the runtime (default).