Skip to main content

ClientConfig

Struct ClientConfig 

Source
pub struct ClientConfig {
Show 18 fields pub endpoint: String, pub origin: Option<String>, pub server_name: Option<String>, pub compression: Option<CompressionType>, pub rate_limit: Option<String>, pub tls_setting: TlsClientConfig, pub keepalive: Option<KeepaliveConfig>, pub proxy: ProxyConfig, pub connect_timeout: DurationString, pub request_timeout: DurationString, pub buffer_size: Option<usize>, pub headers: HashMap<String, String>, pub auth: AuthenticationConfig, pub backoff: BackoffConfig, pub metadata: Option<MetadataMap>, pub link_id: String, pub require_header_mac: bool, pub connection_type: ConnType,
}
Expand description

Struct for the client configuration. This struct contains the endpoint, origin, compression type, rate limit, TLS settings, keepalive settings, proxy settings, timeout settings, buffer size settings, headers, and auth settings. The client configuration can be converted to a transport channel via ClientConfig::to_channel.

Fields§

§endpoint: String

The target the client will connect to.

The transport protocol is inferred from the endpoint scheme:

  • ws://, wss:// → WebSocket (TLS when wss)
  • http://, https://, unix://, bare host:port → gRPC
§origin: Option<String>

Origin (HTTP Host authority override) for the client.

§server_name: Option<String>

Optional TLS SNI server name override. If set, this value is used for TLS server name verification (SNI) instead of the host extracted from endpoint/origin.

§compression: Option<CompressionType>

Compression type - TODO(msardara): not implemented yet.

§rate_limit: Option<String>

Rate Limits

§tls_setting: TlsClientConfig

TLS client configuration.

§keepalive: Option<KeepaliveConfig>

Keepalive parameters.

§proxy: ProxyConfig

HTTP Proxy configuration.

§connect_timeout: DurationString

Timeout for the connection.

§request_timeout: DurationString

Timeout per request.

§buffer_size: Option<usize>

ReadBufferSize.

§headers: HashMap<String, String>

The headers associated with gRPC requests.

§auth: AuthenticationConfig

Auth configuration for outgoing RPCs.

§backoff: BackoffConfig

Backoff retry configuration.

§metadata: Option<MetadataMap>

Arbitrary user-provided metadata.

§link_id: String

Link identifier for this connection, used during link negotiation. Defaults to a randomly generated UUID v4.

§require_header_mac: bool

Flag to enforce header integrity validation

§connection_type: ConnType

The type of connection this client establishes. Defaults to edge. Set to peer for intra-deployment peer connections, or remote for control-plane-managed inter-deployment links.

Implementations§

Source§

impl ClientConfig

Source

pub fn with_endpoint(endpoint: &str) -> Self

Creates a new client configuration with the given endpoint. This function will return a ClientConfig with the endpoint set and all other fields set to default.

Source

pub fn with_origin(self, origin: &str) -> Self

Source

pub fn with_server_name(self, server_name: &str) -> Self

Source

pub fn with_rate_limit(self, rate_limit: &str) -> Self

Source

pub fn with_keepalive(self, keepalive: KeepaliveConfig) -> Self

Source

pub fn with_connect_timeout(self, connect_timeout: Duration) -> Self

Source

pub fn with_request_timeout(self, request_timeout: Duration) -> Self

Source

pub fn with_buffer_size(self, buffer_size: usize) -> Self

Source

pub fn with_headers(self, headers: HashMap<String, String>) -> Self

Source

pub fn with_connection_type(self, connection_type: ConnType) -> Self

Source

pub fn resolved_transport(&self) -> TransportProtocol

Resolve the transport protocol for this configuration by inspecting the endpoint URI scheme. See TransportProtocol::from_endpoint.

Source§

impl ClientConfig

Source

pub fn merge_server_requirements( &mut self, server: &ServerConnectionConfig, ) -> Result<(), TlsConfigError>

Source

pub fn with_compression(self, compression: CompressionType) -> Self

Source

pub fn with_tls_setting(self, tls_setting: TLSSetting) -> Self

Source

pub fn with_proxy(self, proxy: ProxyConfig) -> Self

Source

pub fn with_auth(self, auth: AuthenticationConfig) -> Self

Source

pub fn with_backoff(self, backoff: BackoffConfig) -> Self

Source

pub fn with_metadata(self, metadata: MetadataMap) -> Self

Source

pub async fn to_channel( &self, ) -> Result<TransportChannel<impl GrpcService<Body, Error: Into<StdError> + Send, ResponseBody: Body<Data = Bytes, Error: Into<StdError> + Send> + Send + 'static, Future: Send> + Send + Clone + 'static + use<>>, ConfigError>

Build a transport channel from this configuration. The returned TransportChannel variant matches self.transport.

This is the single public entry point callers should use; the transport-specific builders (to_grpc_channel / to_websocket_channel) are crate-private.

Trait Implementations§

Source§

impl Clone for ClientConfig

Source§

fn clone(&self) -> ClientConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Configuration for ClientConfig

Source§

type Error = ConfigError

Source§

fn validate(&self) -> Result<(), Self::Error>

Validate the component configuration
Source§

impl Debug for ClientConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ClientConfig

Defaults for ClientConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ClientConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for ClientConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl JsonSchema for ClientConfig

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for ClientConfig

Source§

fn eq(&self, other: &ClientConfig) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for ClientConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ClientConfig

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> AnyExt for T
where T: Any + ?Sized,

Source§

fn downcast_ref<T>(this: &Self) -> Option<&T>
where T: Any,

Attempts to downcast this to T behind reference
Source§

fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>
where T: Any,

Attempts to downcast this to T behind mutable reference
Source§

fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>
where T: Any,

Attempts to downcast this to T behind Rc pointer
Source§

fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>
where T: Any,

Attempts to downcast this to T behind Arc pointer
Source§

fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>
where T: Any,

Attempts to downcast this to T behind Box pointer
Source§

fn downcast_move<T>(this: Self) -> Option<T>
where T: Any, Self: Sized,

Attempts to downcast owned Self to T, useful only in generic context as a workaround for specialization
Source§

impl<T> AsDebug for T
where T: Debug,

Source§

fn as_debug(&self) -> &dyn Debug

Returns self as a &dyn Debug trait object.
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, X> CoerceTo<T> for X
where T: CoerceFrom<X> + ?Sized,

Source§

fn coerce_rc_to(self: Rc<X>) -> Rc<T>

Source§

fn coerce_box_to(self: Box<X>) -> Box<T>

Source§

fn coerce_ref_to(&self) -> &T

Source§

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

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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> TryIntoValue for T
where T: Serialize,

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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