Skip to main content

a2a_rs_client/
lib.rs

1//! A2A Client Library
2//!
3//! This library provides a reusable client for communicating with A2A RC 1.0 compliant agent servers.
4//!
5//! # Example Usage
6//!
7//! ```rust,ignore
8//! use a2a_rs_client::{A2aClient, ClientConfig};
9//! use a2a_rs_core::{Message, Part, Role};
10//!
11//! let config = ClientConfig {
12//!     server_url: "http://localhost:8080".to_string(),
13//!     max_polls: 30,
14//!     poll_interval_ms: 2000,
15//!     oauth: None,
16//! };
17//!
18//! let client = A2aClient::new(config)?;
19//! let card = client.fetch_agent_card().await?;
20//!
21//! let message = Message {
22//!     message_id: uuid::Uuid::new_v4().to_string(),
23//!     role: Role::User,
24//!     parts: vec![Part::text("Hello")],
25//!     context_id: None,
26//!     task_id: None,
27//!     extensions: vec![],
28//!     reference_task_ids: None,
29//!     metadata: None,
30//! };
31//!
32//! let response = client.send_message(message, None).await?;
33//! ```
34
35mod client;
36
37// Re-export the main client types
38pub use client::{A2aClient, ClientConfig, OAuthConfig};
39
40// Re-export utility functions for advanced usage
41pub use client::{generate_code_challenge, generate_code_verifier, generate_random_string};