pub struct GrpcConfig {
pub max_message_size: usize,
pub concurrency_limit: usize,
pub stream_channel_capacity: usize,
pub require_version_header: bool,
}Expand description
Configuration for the gRPC dispatcher.
Controls message size limits, compression, and concurrency settings.
§Example
use a2a_protocol_server::dispatch::grpc::GrpcConfig;
let config = GrpcConfig::default()
.with_max_message_size(8 * 1024 * 1024)
.with_concurrency_limit(128);Fields§
§max_message_size: usizeMaximum inbound message size in bytes. Default: 4 MiB.
concurrency_limit: usizeMaximum number of concurrent gRPC requests. Default: 256.
stream_channel_capacity: usizeChannel capacity for streaming responses. Default: 64.
require_version_header: boolWhether to reject a request whose a2a-version metadata is absent or
empty. Per spec §3.6.2 an absent value is interpreted as protocol 0.3,
which this 1.x server does not support, so the strict default (true)
rejects it with VersionNotSupported — matching the JSON-RPC, REST and
WebSocket bindings. Set false only to admit versionless legacy
clients. Default: true.
Implementations§
Source§impl GrpcConfig
impl GrpcConfig
Sourcepub const fn with_max_message_size(self, size: usize) -> Self
pub const fn with_max_message_size(self, size: usize) -> Self
Sets the maximum inbound message size.
Sourcepub const fn with_concurrency_limit(self, limit: usize) -> Self
pub const fn with_concurrency_limit(self, limit: usize) -> Self
Sets the maximum number of concurrent gRPC requests.
Sourcepub const fn with_stream_channel_capacity(self, capacity: usize) -> Self
pub const fn with_stream_channel_capacity(self, capacity: usize) -> Self
Sets the channel capacity for streaming responses.
Sourcepub const fn with_require_version_header(self, require: bool) -> Self
pub const fn with_require_version_header(self, require: bool) -> Self
Sets whether an absent/empty a2a-version is rejected (see the field).
Trait Implementations§
Source§impl Clone for GrpcConfig
impl Clone for GrpcConfig
Source§fn clone(&self) -> GrpcConfig
fn clone(&self) -> GrpcConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GrpcConfig
impl Debug for GrpcConfig
Auto Trait Implementations§
impl Freeze for GrpcConfig
impl RefUnwindSafe for GrpcConfig
impl Send for GrpcConfig
impl Sync for GrpcConfig
impl Unpin for GrpcConfig
impl UnsafeUnpin for GrpcConfig
impl UnwindSafe for GrpcConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request