Skip to main content

Module grpc

Module grpc 

Source
Expand description

type extractor and response generator for grpc unary messages.

§Extracting and responding

use xitca_web::handler::grpc::Grpc;

async fn say_hello(Grpc(req): Grpc<HelloRequest>) -> Grpc<HelloReply> {
    Grpc(HelloReply { response: req.request })
}

§Returning errors

use xitca_web::handler::grpc::{Grpc, GrpcError, GrpcStatus};

async fn say_hello(Grpc(req): Grpc<HelloRequest>) -> Result<Grpc<HelloReply>, GrpcError> {
    let name = req.request.ok_or_else(|| GrpcError::new(GrpcStatus::InvalidArgument, "missing request"))?;
    Ok(Grpc(HelloReply { response: Some(name) }))
}

Structs§

Codec
gRPC length-prefixed framing codec.
Grpc
Extract and response type for unary gRPC messages.
GrpcError
Error type for gRPC operations. Carries a status code and optional message, and can produce gRPC trailers for error responses.
GrpcStreamResponse
Body type for gRPC responses. Yields encoded gRPC data frames and trailers.
GrpcStreamSender
Send gRPC messages to a GrpcStreamResponse. Send gRPC messages to a ResponseBody.

Enums§

GrpcStatus
gRPC status codes as defined in the gRPC specification.
ProtocolError
gRPC protocol errors.

Constants§

DEFAULT_LIMIT
Default body size limit for gRPC messages (4 MiB).

Type Aliases§

GrpcStreamRequest
Client-streaming extractor that yields a stream of T: Message from the request body.