Crate tonic_h3

Crate tonic_h3 

Source
Expand description

gRPC over HTTP/3 for Rust.

§Examples

Server example:

async fn run_server(endpoint: h3_quinn::quinn::Endpoint) -> Result<(), tonic_h3::Error> {
    let router = tonic::transport::Server::builder()
        .add_service(GreeterServer::new(HelloWorldService {}));
    let acceptor = tonic_h3::quinn::H3QuinnAcceptor::new(endpoint.clone());
    tonic_h3::server::H3Router::from(router)
        .serve(acceptor)
        .await?;
    endpoint.wait_idle().await;
    Ok(())
}

Client example:

async fn run_client(
  uri: http::Uri,
  client_endpoint: quinn::Endpoint,
) -> Result<(), tonic_h3::Error> {
  let channel = tonic_h3::quinn::new_quinn_h3_channel(uri.clone(), client_endpoint.clone());
  let mut client = crate::greeter_client::GreeterClient::new(channel);
  let request = tonic::Request::new(crate::HelloRequest {
      name: "Tonic".into(),
  });
  let response = client.say_hello(request).await?;
  println!("RESPONSE={:?}", response);
  Ok(())
}

Modules§

server

Type Aliases§

Error
H3Channel