acls-rs
Access control primitives for Rust — permission sets, role-based access control (RBAC), and temporal permissions with time-based validity windows.
What it does
- Permission sets with union, intersection, and difference — composition order does not affect the result
- Grant/deny pairs — explicit denials compose correctly with grants
- RBAC — role hierarchies with inheritance and cycle detection
- Temporal permissions — validity windows that expire automatically
- Subjects — represent users or entities with group memberships
- Optional serde support (enable the
serdefeature) - Minimal dependencies (
log,thiserror)
Quick start
use *;
// Define roles with inheritance
let mut rbac = new;
let viewer = from_iter;
let editor = from_iter;
rbac.add_role;
rbac.add_role;
// Resolve effective permissions for a role
let perms = rbac.resolve_permissions.unwrap;
assert!;
assert!;
Documentation
Full API reference and design guide: https://akamu.dev/bac-rules/
License
Licensed under either of Apache License 2.0 or MIT license, at your option.