Expand description
§adk-server
HTTP server and A2A v1.0.0 protocol for ADK agents.
§Overview
This crate provides HTTP infrastructure:
create_app- Create REST API servercreate_app_with_a2a- Add A2A protocol supportRemoteA2aAgent- Connect to remote A2A agentsServerConfig- Server configuration
§What’s New in 0.6.0
§A2A v1.0.0 Protocol Compliance
The a2a::v1 module (behind the a2a-v1 feature flag) implements the full A2A Protocol
v1.0.0 specification with all 11 JSON-RPC operations:
- RFC 3339 timestamps on all task status changes
- Agent capabilities declaration via
build_v1_agent_card() - Message ID idempotency for
SendMessage/SendStreamingMessage - Push notification authentication (Bearer +
a2a-notification-token) - INPUT_REQUIRED multi-turn resume flow
- Input validation (parts, IDs, metadata size)
Content-Type: application/a2a+jsonon JSON-RPC responses- Task object as first SSE streaming event
- Context-scoped task lookup for multi-turn conversations
- Version negotiation via
A2A-Versionheader
Wire types powered by a2a-protocol-types.
§Breaking Changes
build_v1_agent_card()now requires anAgentCapabilitiesparameterTaskStoretrait gainsfind_task_by_context()methodPushNotificationSendertrait methods gainconfigparametermessage_stream()andtasks_subscribe()returnStreamResponseinstead ofTaskStatusUpdateEvent
§Quick Start
use adk_server::{create_app, ServerConfig};
use std::sync::Arc;
// let config = ServerConfig { ... };
// let app = create_app(config);
// let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await?;
// axum::serve(listener, app).await?;§A2A Protocol
Expose agents via Agent-to-Agent protocol:
GET /.well-known/agent-card.json- Agent card with capabilitiesPOST /jsonrpc- JSON-RPC endpoint (all 11 v1 operations)- REST routes for all operations
Re-exports§
pub use a2a::A2aClient;pub use a2a::Executor;pub use a2a::ExecutorConfig;pub use a2a::RemoteA2aAgent;pub use a2a::RemoteA2aAgentBuilder;pub use a2a::RemoteA2aConfig;pub use a2a::build_agent_card;pub use a2a::build_agent_skills;pub use auth_bridge::RequestContextError;pub use auth_bridge::RequestContextExtractor;pub use config::SecurityConfig;pub use config::ServerConfig;pub use rest::A2aController;pub use rest::RuntimeController;pub use rest::SessionController;pub use rest::create_app;pub use rest::create_app_with_a2a;pub use rest::shutdown_signal;
Modules§
- a2a
- auth_
bridge - Auth middleware bridge for flowing authenticated identity into agent execution.
- config
- rest
- ui_
protocol - UI protocol constants, capability specs, and normalization.
- ui_
types - MCP Apps render-option types and validation.
- web_ui
Structs§
- Request
Context - Identity and authorization context extracted from an HTTP request.