openidauthzen 0.1.0-alpha.1

OpenID AuthZEN Authorization API 1.0 — Policy Decision and Enforcement Points for Rust
Documentation
# openidauthzen

![build](https://img.shields.io/github/actions/workflow/status/mjovanc/openidauthzen/ci.yml?branch=master)
![crates.io](https://img.shields.io/crates/v/openidauthzen.svg)
[![documentation](https://img.shields.io/badge/docs-openidauthzen-blue?logo=rust)](https://docs.rs/openidauthzen/latest/openidauthzen/)

A Rust SDK for the OpenID AuthZEN [Authorization API 1.0](https://openid.net/specs/authorization-api-1_0.html) — build Policy Decision Points (PDPs) and Policy Enforcement Points (PEPs) that interoperate with any AuthZEN-compliant system.

> **Under active development.** The public API will change before 1.0.

## Why AuthZEN?

The AuthZEN Authorization API standardizes how applications request and receive authorization decisions. Instead of embedding authorization logic directly in your application, AuthZEN lets you externalize decisions to a Policy Decision Point and enforce them at a Policy Enforcement Point — enabling centralized, auditable, and interoperable authorization across distributed systems.

`openidauthzen` brings this to Rust so you can build PDPs and PEPs that interoperate with any AuthZEN-compliant system.

## Ecosystem Crates

| Crate | Description | Status |
|-------|-------------|--------|
| `openidauthzen` | Core SDK — models, client, discovery, evaluation, search | In progress |
| `openidauthzen-axum` | Axum middleware, extractors, and tower layer for PEP enforcement | Planned |
| `openidauthzen-actix` | Actix-web middleware and extractors for PEP enforcement | Planned |

## Specs Covered

| Specification | What it defines |
|---------------|-----------------|
| [Authorization API 1.0]https://openid.net/specs/authorization-api-1_0.html | Access evaluation, subject/resource/action model, PDP/PEP interaction |

## License

Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT License](LICENSE-MIT) at your option.