[][src]Struct tonic::transport::server::Server

pub struct Server { /* fields omitted */ }
This is supported on feature="transport" only.

A default batteries included transport server.

This is a wrapper around hyper::Server and provides an easy builder pattern style builder Server. This builder exposes easy configuration parameters for providing a fully featured http2 based gRPC server. This should provide a very good out of the box http2 server for use with tonic but is also a reference implementation that should be a good starting point for anyone wanting to create a more complex and/or specific implementation.

Methods

impl Server[src]

pub fn builder() -> Self[src]

This is supported on feature="transport" only.

Create a new server builder that can configure a Server.

impl Server[src]

pub fn tls_config(self, tls_config: ServerTlsConfig) -> Self[src]

This is supported on feature="transport" and feature="tls" only.

Configure TLS for this server.

pub fn concurrency_limit_per_connection(self, limit: usize) -> Self[src]

This is supported on feature="transport" only.

Set the concurrency limit applied to on requests inbound per connection.

Example

builder.concurrency_limit_per_connection(32);

pub fn timeout(&mut self, timeout: Duration) -> &mut Self[src]

This is supported on feature="transport" only.

Set a timeout on for all request handlers.

Example

builder.timeout(Duration::from_secs(30));

pub fn initial_stream_window_size(self, sz: impl Into<Option<u32>>) -> Self[src]

This is supported on feature="transport" only.

Sets the SETTINGS_INITIAL_WINDOW_SIZE option for HTTP2 stream-level flow control.

Default is 65,535

pub fn initial_connection_window_size(self, sz: impl Into<Option<u32>>) -> Self[src]

This is supported on feature="transport" only.

Sets the max connection-level flow control for HTTP2

Default is 65,535

pub fn max_concurrent_streams(self, max: impl Into<Option<u32>>) -> Self[src]

This is supported on feature="transport" only.

Sets the SETTINGS_MAX_CONCURRENT_STREAMS option for HTTP2 connections.

Default is no limit (None).

pub fn tcp_keepalive(self, tcp_keepalive: Option<Duration>) -> Self[src]

This is supported on feature="transport" only.

Set whether TCP keepalive messages are enabled on accepted connections.

If None is specified, keepalive is disabled, otherwise the duration specified will be the time to remain idle before sending TCP keepalive probes.

Default is no keepalive (None)

pub fn tcp_nodelay(self, enabled: bool) -> Self[src]

This is supported on feature="transport" only.

Set the value of TCP_NODELAY option for accepted connections. Enabled by default.

pub fn trace_fn<F>(self, f: F) -> Self where
    F: Fn(&HeaderMap) -> Span + Send + Sync + 'static, 
[src]

This is supported on feature="transport" only.

Intercept inbound headers and add a tracing::Span to each response future.

pub fn add_service<S>(&mut self, svc: S) -> Router<S, Unimplemented> where
    S: Service<Request<Body>, Response = Response<BoxBody>> + NamedService + Clone + Send + 'static,
    S::Future: Send + 'static,
    S::Error: Into<Box<dyn Error + Send + Sync>> + Send
[src]

This is supported on feature="transport" only.

Create a router with the S typed service as the first service.

This will clone the Server builder and create a router that will route around different services.

Trait Implementations

impl Clone for Server[src]

impl Debug for Server[src]

impl Default for Server[src]

Auto Trait Implementations

impl !RefUnwindSafe for Server

impl Send for Server

impl Sync for Server

impl Unpin for Server

impl !UnwindSafe for Server

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

impl<T> WithSubscriber for T[src]