Expand description
gRPC dispatcher for the A2A server.
GrpcDispatcher serves the canonical lf.a2a.v1.A2AService — the
protobuf-native A2A v1.0 binding, wire-compatible with the official Go,
Python, and Java A2A SDKs. Request and response messages are the
prost-generated types from a2a_protocol_types::proto, converted to
the same domain types the JSON-RPC and REST bindings use before being
routed to the underlying crate::RequestHandler.
Releases before 0.7 tunneled JSON inside a protobuf bytes envelope on a
non-standard service (a2a.v1.A2aService), served alongside the canonical
one behind the off-by-default grpc-legacy-json feature. That feature and
its service were removed in 0.8; the canonical binding is the only gRPC
surface. A 0.6 client must upgrade rather than be tunneled for.
§Configuration
Use GrpcConfig to control message size limits and concurrency.
§Example
use std::sync::Arc;
use a2a_protocol_server::dispatch::grpc::{GrpcDispatcher, GrpcConfig};
use a2a_protocol_server::RequestHandlerBuilder;
let handler = Arc::new(
RequestHandlerBuilder::new(MyExec).build().unwrap()
);
let config = GrpcConfig::default();
let dispatcher = GrpcDispatcher::new(handler, config);
dispatcher.serve("127.0.0.1:50051").await?;Structs§
- A2aService
Impl - The tonic service implementation for the canonical A2A binding.
- A2aService
Server - Provides operations for interacting with agents using the A2A protocol.
- Grpc
Config - Configuration for the gRPC dispatcher.
- Grpc
Dispatcher - gRPC dispatcher that routes A2A requests to a
RequestHandler.