check examples below

https://github.com/hyperium/tonic/blob/master/examples

compression

use tonic::codec::CompressionEncoding;

server

let service = GreeterServer::new(greeter)
       .send_compressed(CompressionEncoding::Gzip)
       .accept_compressed(CompressionEncoding::Gzip);

client

let mut client = GreeterClient::new(channel)
        .send_compressed(CompressionEncoding::Gzip)
        .accept_compressed(CompressionEncoding::Gzip);

with_interceptor(server, check_auth);

  • tracing
  • tower
  • tls
  • authentication
  • grpc-web
  • interceptor
  • ...