Expand description

grpcio is a Rust implementation of gRPC, which is a high performance, open source universal RPC framework that puts mobile and HTTP/2 first. grpcio is built on gRPC Core and futures-rs.

Optional features

  • boringssl (enabled by default) - Enables support for TLS encryption and some authentication mechanisms.
  • openssl - Same as boringssl, but base on the system openssl.
  • openssl-vendored - Same as openssl, but build openssl from source.


Channelz provides channel level debug information. In short, There are four types of top level entities: channel, subchannel, socket and server. All entities are identified by an positive unique integer, which is allocated in order. For more explanation, see https://github.com/grpc/proposal/blob/master/A14-channelz.md.


A shortcut for implementing a service method by returning UNIMPLEMENTED status code.


To perform server-side authentication, gRPC exposes the authentication context for each call. The context exposes important authentication-related information about the RPC such as the type of security/authentication type being used and the peer identity.

Auth properties are elements of the AuthContext. They have a name (a key of type string) and a value which can be a string or binary data.

Options for calls made by client.

A gRPC channel.

Channel factory in order to configure the properties.

Client-side SSL credentials.

ChannelCredentials factory in order to configure the properties.

A generic client for making RPC calls.

A receiver for client streaming call.

A response receiver for duplex call.

A receiver for server streaming call.

A sink for client streaming call.

A receiver for unary request.

A time point that an rpc or operation should finished before it.

A sink for duplex streaming call.

Environment factory in order to configure the properties.

An object that used to control concurrency and start gRPC event loop.

A convenient rust wrapper for the type grpc_slice.

Defines how to serialize and deserialize between the specialized type and byte slice.

A collection of metadata entries that can be exchanged during a call.

Builder for immutable Metadata.

Immutable metadata iterator

A description of a remote method.

A stream for client a streaming call and a duplex streaming call.

ResourceQuota represents a bound on memory and thread usage by the gRPC. NOTE: The management of threads created in grpc-core don’t use ResourceQuota. TODO: Manage the poller threads created in grpc-rs with this ResourceQuota later.

A context for rpc handling.

RPC result returned from the server.

An gRPC status code structure. This type contains constants for all gRPC status codes.

A gRPC server.

Server factory in order to configure the properties.

Server-side SSL credentials.

ServerCredentials factory in order to configure the properties.

A sink for server streaming call.

A gRPC service.

Service factory in order to configure the properties.

A Future that will resolve when shutdown completes.

A sink for client streaming call and duplex streaming call. To close the sink properly, you should call close before dropping.

A sink for unary call.

Flags for write operations.


Used to indicate the result of the check. If it returns Abort, skip the subsequent checkers and abort the grpc call.

The various compression algorithms supported by gRPC (not sorted by compression level)

Compression levels allow a party with knowledge of its peer’s accepted encodings to request compression in an abstract way. The level-algorithm mapping is performed internally and depends on the peer’s supported compression algorithms.

Connectivity state of a channel.

Errors generated from this library.

Method types supported by gRPC.

The optimization target for a Channel.


According to https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md, grpc uses a four bytes to describe the length of a message, so it should not exceed u32::MAX.


Traits to retrieve updated SSL server certificates, private keys, and trusted CAs (for client authentication).


Redirect grpc log to rust’s log implementation.

Type Definitions

A sink for client streaming call.

A sink for duplex streaming call.

Type alias to use this library’s Error type in a Result.