๐ beep-authz
A Rust authorization library with SpiceDB integration for fine-grained permissions.
Powerful, flexible authorization with Google Zanzibar-inspired permission checks
๐ Documentation | ๐ Getting Started | ๐ก Examples
โจ Features
๐ SpiceDB Integration
- Native support for SpiceDB/AuthZed
- Fine-grained permission checks
- Relationship-based access control (ReBAC)
โก High Performance
- Async/await support with Tokio
- Connection pooling
- gRPC-based communication
๐ฏ Type-Safe Permissions
- Strongly-typed permission system
- Object-based resource modeling
- Compile-time safety
๐ก๏ธ Enterprise Ready
- Production-tested
- Comprehensive error handling
- Token-based authentication
๐ Quick Start
Installation
Add beep-authz to your Cargo.toml:
[]
= "0.1.0"
= { = "1.48", = ["full"] }
Basic Usage
use ;
async
๐ Supported Permissions
The library includes built-in permissions for common scenarios:
- Administrator - Full access to all resources
- ManageServer - Update server settings
- ManageRoles - Create and manage roles
- CreateInvitation - Generate invite links
- ManageChannels - Full channel management
- ManageWebhooks - Webhook CRUD operations
- ViewChannels - Read channel contents
- SendMessages - Post messages
- ManageNicknames - Update user nicknames
- ChangeNickname - Update own nickname
- ManageMessages - Moderate messages
- AttachFiles - Upload files
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SpiceDbRepository โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ check_permissions() โ โ
โ โ check_permissions_raw() โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ gRPC
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SpiceDB Server โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Permission Engine โ โ
โ โ โข Check relationships โ โ
โ โ โข Evaluate permissions โ โ
โ โ โข Return authorization result โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ง Configuration
Configure SpiceDB connection via environment variables or command-line arguments:
# Environment variables
# Or use command-line arguments
๐ SpiceDB Setup
This library works with:
๐ Learn More
- SpiceDB Documentation
- Zanzibar Paper - Google's authorization system
- Permission System Design
๐งช Testing
Run the test suite:
๐ License
Licensed under Apache License 2.0. See LICENSE for details.