[][src]Struct tonic::transport::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]

Important traits for &'_ mut F
pub fn tls_config(&mut self, tls_config: &ServerTlsConfig) -> &mut Self[src]

This is supported on feature="transport" only.

Configure TLS for this server.

Important traits for &'_ mut F
pub fn concurrency_limit_per_connection(&mut self, limit: usize) -> &mut Self[src]

This is supported on feature="transport" only.

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

builder.concurrency_limit_per_connection(32);

Important traits for &'_ mut F
pub fn initial_stream_window_size(
    &mut self,
    sz: impl Into<Option<u32>>
) -> &mut 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

Important traits for &'_ mut F
pub fn initial_connection_window_size(
    &mut self,
    sz: impl Into<Option<u32>>
) -> &mut Self
[src]

This is supported on feature="transport" only.

Sets the max connection-level flow control for HTTP2

Default is 65,535

Important traits for &'_ mut F
pub fn max_concurrent_streams(
    &mut self,
    max: impl Into<Option<u32>>
) -> &mut Self
[src]

This is supported on feature="transport" only.

Sets the SETTINGS_MAX_CONCURRENT_STREAMS option for HTTP2 connections.

Default is no limit (None).

Important traits for &'_ mut F
pub fn interceptor_fn<F, Out>(&mut self, f: F) -> &mut Self where
    F: Fn(&mut BoxService<Request<Body>, Response<BoxBody>, Box<dyn Error + Send + Sync>>, Request<Body>) -> Out + Send + Sync + 'static,
    Out: Future<Output = Result<Response<BoxBody>, Box<dyn Error + Send + Sync>>> + Send + 'static, 
[src]

This is supported on feature="transport" only.

Intercept the execution of gRPC methods.

builder.interceptor_fn(|svc, req| {
    println!("request={:?}", req);
    svc.call(req)
});

pub async fn serve<M, S>(self, addr: SocketAddr, svc: M) -> Result<(), Error> where
    M: Service<(), Response = S>,
    M::Error: Into<Box<dyn Error + Send + Sync>> + Send + 'static,
    M::Future: Send + 'static,
    S: Service<Request<Body>, Response = Response<BoxBody>> + Send + 'static,
    S::Future: Send + 'static,
    S::Error: Into<Box<dyn Error + Send + Sync>> + Send
[src]

This is supported on feature="transport" only.

Consume this Server creating a future that will execute the server on tokio's default executor.

Trait Implementations

impl Clone for Server[src]

impl Default for Server[src]

impl Debug for Server[src]

Auto Trait Implementations

impl Send for Server

impl Sync for Server

impl Unpin for Server

impl !UnwindSafe for Server

impl !RefUnwindSafe for Server

Blanket Implementations

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

impl<T> From<T> for 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<T> Borrow<T> for T where
    T: ?Sized
[src]

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

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