Skip to main content

AgentClientV2Uds

Struct AgentClientV2Uds 

Source
pub struct AgentClientV2Uds { /* private fields */ }
Expand description

v2 agent client over Unix Domain Socket.

This client maintains a single connection and multiplexes multiple requests over it using correlation IDs, similar to the gRPC client.

Implementations§

Source§

impl AgentClientV2Uds

Source

pub async fn new( agent_id: impl Into<String>, socket_path: impl Into<String>, timeout: Duration, ) -> Result<Self, AgentProtocolError>

Create a new UDS v2 client.

Source

pub async fn encoding(&self) -> UdsEncoding

Get the current negotiated encoding.

Source

pub fn set_metrics_callback(&mut self, callback: MetricsCallback)

Set the metrics callback.

Source

pub fn set_config_update_callback(&mut self, callback: ConfigUpdateCallback)

Set the config update callback.

Source

pub async fn connect(&self) -> Result<(), AgentProtocolError>

Connect and perform handshake.

Source

pub async fn capabilities(&self) -> Option<AgentCapabilities>

Get negotiated capabilities.

Source

pub async fn is_connected(&self) -> bool

Check if connected.

Source

pub async fn send_request_headers( &self, correlation_id: &str, event: &RequestHeadersEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a request headers event.

Source

pub async fn send_request_body_chunk( &self, correlation_id: &str, event: &RequestBodyChunkEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a request body chunk event.

Source

pub async fn send_response_headers( &self, correlation_id: &str, event: &ResponseHeadersEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a response headers event.

Source

pub async fn send_response_body_chunk( &self, correlation_id: &str, event: &ResponseBodyChunkEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a response body chunk event.

Source

pub async fn send_request_complete( &self, correlation_id: &str, event: &RequestCompleteEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a request complete event.

Source

pub async fn send_websocket_frame( &self, correlation_id: &str, event: &WebSocketFrameEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a WebSocket frame event.

Source

pub async fn send_guardrail_inspect( &self, correlation_id: &str, event: &GuardrailInspectEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a guardrail inspect event.

Source

pub async fn send_configure( &self, correlation_id: &str, event: &Value, ) -> Result<AgentResponse, AgentProtocolError>

Send a configure event.

Source

pub async fn send_request_body_chunk_binary( &self, event: &BinaryRequestBodyChunkEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a binary request body chunk event (zero-copy path).

This method avoids base64 encoding when using MessagePack encoding, sending raw bytes directly over the wire for better throughput.

§Performance

When MessagePack encoding is negotiated:

  • Bytes are serialized directly (no base64 encode/decode)
  • Reduces CPU usage and latency for large bodies

When JSON encoding is used:

  • Falls back to base64 encoding for JSON compatibility
Source

pub async fn send_response_body_chunk_binary( &self, event: &BinaryResponseBodyChunkEvent, ) -> Result<AgentResponse, AgentProtocolError>

Send a binary response body chunk event (zero-copy path).

This method avoids base64 encoding when using MessagePack encoding, sending raw bytes directly over the wire for better throughput.

Source

pub async fn cancel_request( &self, correlation_id: &str, reason: CancelReason, ) -> Result<(), AgentProtocolError>

Send a cancel request for a specific correlation ID.

Source

pub async fn cancel_all( &self, reason: CancelReason, ) -> Result<usize, AgentProtocolError>

Cancel all in-flight requests.

Source

pub async fn ping(&self) -> Result<(), AgentProtocolError>

Send a ping.

Source

pub async fn close(&self) -> Result<(), AgentProtocolError>

Close the connection.

Source

pub fn in_flight(&self) -> u64

Get in-flight request count.

Source

pub fn agent_id(&self) -> &str

Get agent ID.

Source

pub async fn is_paused(&self) -> bool

Check if the agent has requested flow control pause.

Returns true if the agent sent a FlowAction::Pause signal, indicating it cannot accept more requests.

Source

pub async fn can_accept_requests(&self) -> bool

Check if the transport can accept new requests.

Returns false if the agent has requested a flow control pause.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more