Shared redis cache for multiple CachedEnforcer instances

Clone this repo:

Branches

Tags

  1. 2ed2fed fix typo by Cheng JIANG · 5 years ago master
  2. 5804485 update README.md by Cheng JIANG · 5 years ago
  3. 0900d02 upgrade redis & use hset by Cheng JIANG · 5 years ago
  4. f656dfe fix typo by Cheng JIANG · 6 years ago
  5. f2a7a32 add missing meta data by Cheng JIANG · 6 years ago

Redis Cache

A shared memory cache for casbin-rs, backed by redis.

Installation

[dependencies]
casbin = { version = "2.0.1", default-features = false, features = ["runtime-async-std", "logging", "cached"] }
redis-cache = { version = "0.2.0" }
async-std = { version = "1.5.0", features = ["attributes"] }

Getting started

use casbin::prelude::*;
use redis_cache::RedisCache;

#[async_std::main]
async fn main() -> Result<()> {
    let mut e = CachedEnforcer::new("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv").await?;
    e.enable_log(true);

    let redis_cache: RedisCache<u64, bool> = RedisCache::new("redis://localhost:6379/1");

    e.set_cache(Box::new(redis_cache));
    e.enforce_mut(("alice", "domain1", "data1", "read"))?;
}