Struct Http3Connector
pub struct Http3Connector { /* private fields */ }dns and http-backend and http and std and tcp only.Expand description
Establish authenticated QUIC transports for the common HTTP handshake.
Wrap this connector with Rama’s DNS connector and HTTP connection pool,
which checks the reuse policy published by this connector. TLS overrides
are classified by the same provider that configures the handshake.
The connector selects h3 ALPN; the origin hostname remains the TLS
verification target even when routing selects a different physical address.
This direct UDP connector rejects proxy routes before any connection attempt.
Proxy-capable QUIC connectors can be injected separately.
Implementations§
§impl Http3Connector
impl Http3Connector
pub fn builder(executor: Executor) -> Http3ConnectorBuilder
pub fn builder(executor: Executor) -> Http3ConnectorBuilder
Configure a connector with default TLS verification and HTTP/3 limits.
pub fn tls_config(&self) -> &TlsClientConfig
pub fn tls_config(&self) -> &TlsClientConfig
Fixed TLS defaults for this connector. Rebuild its pool when these defaults or behavior captured by native TLS hooks change.
pub fn tls_provider(&self) -> &Arc<dyn QuicClientConfigProvider> ⓘ
pub fn tls_provider(&self) -> &Arc<dyn QuicClientConfigProvider> ⓘ
Provider selection used for establishment and TLS pool identity.
Trait Implementations§
§impl Clone for Http3Connector
impl Clone for Http3Connector
§fn clone(&self) -> Http3Connector
fn clone(&self) -> Http3Connector
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for Http3Connector
impl Debug for Http3Connector
§impl Service<ConnectRequest> for Http3Connector
impl Service<ConnectRequest> for Http3Connector
§type Output = EstablishedClientConnection<Http3Transport, ConnectRequest>
type Output = EstablishedClientConnection<Http3Transport, ConnectRequest>
§type Error = ConnectionError
type Error = ConnectionError
§async fn serve(
&self,
input: ConnectRequest,
) -> Result<<Http3Connector as Service<ConnectRequest>>::Output, <Http3Connector as Service<ConnectRequest>>::Error>
async fn serve( &self, input: ConnectRequest, ) -> Result<<Http3Connector as Service<ConnectRequest>>::Output, <Http3Connector as Service<ConnectRequest>>::Error>
§fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
Auto Trait Implementations§
impl !RefUnwindSafe for Http3Connector
impl !UnwindSafe for Http3Connector
impl Freeze for Http3Connector
impl Send for Http3Connector
impl Sync for Http3Connector
impl Unpin for Http3Connector
impl UnsafeUnpin for Http3Connector
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<S, Input, Connection> ConnectorService<Input> for Swhere
S: Service<Input, Output = EstablishedClientConnection<Connection, Input>>,
<S as Service<Input>>::Error: Into<ConnectionError>,
Connection: Send + ExtensionsRef,
impl<S, Input, Connection> ConnectorService<Input> for Swhere
S: Service<Input, Output = EstablishedClientConnection<Connection, Input>>,
<S as Service<Input>>::Error: Into<ConnectionError>,
Connection: Send + ExtensionsRef,
§type Connection = Connection
type Connection = Connection
ConnectorService§fn connect(
&self,
input: Input,
) -> impl Future<Output = Result<EstablishedClientConnection<<S as ConnectorService<Input>>::Connection, Input>, ConnectionError>> + Send
fn connect( &self, input: Input, ) -> impl Future<Output = Result<EstablishedClientConnection<<S as ConnectorService<Input>>::Connection, Input>, ConnectionError>> + Send
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more