#protocols #rpc #agent #a2a

xa2a

A Rust implementation of the Agent2Agent (A2A) Protocol SDK

2 unstable releases

Uses new Rust 2024

new 0.2.0 Jan 30, 2026
0.1.0 Jan 30, 2026

#7 in #a2a

MIT/Apache

430KB
10K SLoC

A2A Rust SDK

A Rust implementation of the Agent2Agent (A2A) Protocol SDK.

This crate provides a complete implementation of the A2A protocol for building agentic applications that can communicate with each other following the Agent2Agent Protocol.

Features

  • A2A Protocol Compliant: Full implementation of the A2A specification
  • Async/Await: Built on tokio for high-performance async operations
  • Type-Safe: Strongly typed models with serde serialization
  • Extensible: Modular design with optional features

Quick Start

use xa2a::client::{A2AClient, Client};

#[tokio::main]
async fn main() -> Result<(), xa2a::error::A2AError> {
    let client = A2AClient::new("https://agent.example.com")?;
    let card = client.get_agent_card().await?;
    println!("Connected to agent: {}", card.name);
    Ok(())
}

xa2a

Rust SDK for the Agent2Agent (A2A) Protocol.

License

This project is licensed under either of the following licenses, at your option:

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.

Dependencies

~18–42MB
~516K SLoC