1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! # 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
/// AT Protocol namespace modules.