atproto-client 0.9.5

HTTP client for AT Protocol services with OAuth and identity integration
Documentation
//! # AT Protocol HTTP Client Library
//!
//! Comprehensive HTTP client library for AT Protocol services with support for multiple
//! authentication methods and XRPC protocol operations. Provides both low-level HTTP
//! client functionality and high-level AT Protocol specific operations.
//!
//! ## Key Features
//!
//! - **Multiple Authentication Methods**: DPoP, Bearer tokens, and session-based authentication
//! - **XRPC Protocol Support**: Native support for AT Protocol's XRPC communication protocol
//! - **Repository Operations**: Complete client for AT Protocol repository operations
//! - **Session Management**: Authentication session creation, refresh, and validation
//! - **Error Handling**: Structured error types with detailed context for debugging
//! - **URL Utilities**: Helper functions for AT Protocol URL construction and validation
//!
//! ## Architecture
//!
//! The library provides both raw HTTP client capabilities and AT Protocol specific abstractions:
//!
//! - **`client`**: Core HTTP client with authentication middleware support
//! - **`url`**: URL construction and validation utilities for AT Protocol endpoints
//! - **`com::atproto::repo`**: Repository operations for record management
//! - **`com::atproto::server`**: Server operations for authentication and session management
//! - **`errors`**: Structured error types for HTTP and authentication failures
//!
//! ## Command-Line Tools
//!
//! When built with the `clap` feature, provides XRPC client tools:
//!
//! - **`atproto-client-dpop`**: Make authenticated XRPC calls using DPoP (Demonstration of Proof-of-Possession) tokens
//! - **`atproto-client-auth`**: Create and refresh authentication sessions with AT Protocol services
//! - **`atproto-client-app-password`**: Make authenticated XRPC calls using application-specific Bearer tokens

#![forbid(unsafe_code)]
#![warn(missing_docs)]

pub mod client;
pub mod errors;
pub mod url;

mod com_atproto_repo;
mod com_atproto_server;

/// AT Protocol namespace modules.
pub mod com {
    /// AT Protocol core modules.
    pub mod atproto {
        /// Repository operations for AT Protocol records.
        pub mod repo {
            pub use crate::com_atproto_repo::*;
        }
        /// Server operations for AT Protocol authentication and session management.
        pub mod server {
            pub use crate::com_atproto_server::*;
        }
    }
}