# PyAuthz
> Framework-agnostic authorization for modern Python. RBAC, ABAC, PBAC — unified, typed, Pydantic-native, async-first, auditable.

## Docs
- [Quickstart](https://pyauthz.dev/quickstart): 5-minute setup guide
- [Core Concepts](https://pyauthz.dev/concepts): Roles, permissions, policies, conditions
- [API Reference](https://pyauthz.dev/api): Full engine and model reference
- [Policy-as-Code](https://pyauthz.dev/yaml): YAML policy format and loading
- [Audit Logging](https://pyauthz.dev/audit): Structured decision logs

## Install
pip install pyauthz

## Quick Example
from pyauthz import PyAuthz, Subject, Resource, Role

rp = PyAuthz()
rp.add_role(Role(name="admin", permissions=["*:*"]))
user = Subject(id="alice", roles=["admin"])
doc = Resource(id="doc-1", type="documents")
rp.is_allowed(user, "read", doc)  # True — action auto-expands to "documents:read"
