···2425Write high level module documentation in the `path/to/file.rs` source file. Documentation should brief and specific. Think very hard about how to do this.
260027Update the high level module documentation in each of the source files in the `atproto-identity`, `atproto-record`, `atproto-oauth`, `atproto-client`, and `atproto-oauth-axum` crates. Documentation should brief and specific. Think very hard about how to do this.
2829Update the `README.md` files in the `atproto-identity`, `atproto-record`, `atproto-oauth`, `atproto-oauth-axum`, and `atproto-client` crates. Each `README.md` file should include a high level overview of what the crate provides and include a summary of each binary produced by the crate. Think very hard.
···2425Write high level module documentation in the `path/to/file.rs` source file. Documentation should brief and specific. Think very hard about how to do this.
2627+Write high level crate documentation in the `crates/atproto-oauth-axum/src/lib.rs` source file. Documentation should brief and specific. Think very hard about how to do this.
28+29Update the high level module documentation in each of the source files in the `atproto-identity`, `atproto-record`, `atproto-oauth`, `atproto-client`, and `atproto-oauth-axum` crates. Documentation should brief and specific. Think very hard about how to do this.
3031Update the `README.md` files in the `atproto-identity`, `atproto-record`, `atproto-oauth`, `atproto-oauth-axum`, and `atproto-client` crates. Each `README.md` file should include a high level overview of what the crate provides and include a summary of each binary produced by the crate. Think very hard.
···1-//! AT Protocol OAuth Axum web handlers.
2//!
3-//! Complete Axum web handlers for implementing AT Protocol OAuth 2.0 authorization server
4-//! endpoints including client metadata, JWKS, and authorization callback handling.
000000000000000000000000000000000000000000000000000000000056#![warn(missing_docs)]
7
···1+//! Axum web framework integration for AT Protocol OAuth workflows.
2//!
3+//! This crate provides complete Axum web handlers and request extractors for implementing
4+//! AT Protocol OAuth 2.0 client endpoints. It includes RFC-compliant client metadata serving,
5+//! JWKS public key distribution, and OAuth authorization callback handling.
6+//!
7+//! ## Features
8+//!
9+//! - **OAuth Client Metadata**: RFC 7591 compliant client metadata endpoint
10+//! - **JWKS Endpoint**: JSON Web Key Set serving for signature verification
11+//! - **Authorization Callbacks**: Complete OAuth authorization code flow handling
12+//! - **DPoP Support**: Demonstration of Proof-of-Possession token binding
13+//! - **Request Extractors**: Axum state management for OAuth configuration
14+//! - **Error Handling**: Structured error types for OAuth workflows
15+//!
16+//! ## OAuth Endpoints
17+//!
18+//! The crate provides handlers for standard OAuth 2.0 endpoints:
19+//!
20+//! - `/oauth/client-metadata.json` - OAuth client metadata (RFC 7591)
21+//! - `/.well-known/jwks.json` - JSON Web Key Set for public keys
22+//! - `/oauth/callback` - OAuth authorization callback handler
23+//!
24+//! ## CLI Tool
25+//!
26+//! The `atproto-oauth-tool` binary provides a complete OAuth client implementation:
27+//!
28+//! ```bash
29+//! # Start OAuth login flow
30+//! atproto-oauth-tool login <private_signing_key> <subject>
31+//!
32+//! # Refresh OAuth tokens
33+//! atproto-oauth-tool refresh <private_signing_key> <subject> <private_dpop_key> <refresh_token>
34+//! ```
35+//!
36+//! ## Example Integration
37+//!
38+//! ```rust,no_run
39+//! use axum::{routing::get, Router};
40+//! use atproto_oauth_axum::{
41+//! handle_complete::handle_oauth_callback,
42+//! handle_jwks::handle_oauth_jwks,
43+//! handler_metadata::handle_oauth_metadata,
44+//! state::OAuthClientConfig,
45+//! };
46+//!
47+//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
48+//! let router = Router::new()
49+//! .route("/oauth/client-metadata.json", get(handle_oauth_metadata))
50+//! .route("/.well-known/jwks.json", get(handle_oauth_jwks))
51+//! .route("/oauth/callback", get(handle_oauth_callback));
52+//! // .with_state(oauth_config);
53+//! # Ok(())
54+//! # }
55+//! ```
56+//!
57+//! ## Dependencies
58+//!
59+//! This crate integrates with:
60+//! - [`atproto-oauth`]: Core OAuth workflow logic and PKCE implementation
61+//! - [`atproto-identity`]: AT Protocol identity resolution and key management
62+//! - [`axum`]: Web framework for HTTP request handling
6364#![warn(missing_docs)]
65