Module Grpc_spec

module Value_mode : sig ... end

Creating RPC apis

module Rpc : sig ... end
module Protoable : sig ... end
module Protospec : sig ... end
module type S = sig ... end
type ('request, 'request_mode, 'response, 'response_mode) t = (module S with type request_mode = 'request_mode and type response_mode = 'response_mode and type Request.t = 'request and type Response.t = 'response)

Some type aliases to help managing the complexity of the types.

type ('request, 'response) unary = ('request, Value_mode.unary, 'response, Value_mode.unary) t
type ('request, 'response) server_streaming = ('request, Value_mode.unary, 'response, Value_mode.stream) t
type ('request, 'response) client_streaming = ('request, Value_mode.stream, 'response, Value_mode.unary) t
type ('request, 'response) bidirectional_streaming = ('request, Value_mode.stream, 'response, Value_mode.stream) t
module Unary : sig ... end
module Client_streaming : sig ... end
module Server_streaming : sig ... end
module Bidirectional_streaming : sig ... end

Grpc Utils

The rest of the module contains utils to help creating what is required by the Grpc library.

val client_rpc : ('request, 'request_mode, 'response, 'response_mode) t -> ('request, 'request_mode, 'response, 'response_mode) Grpc.Rpc.Client_rpc.t

client_rpc is used by the implementation of Grpc_client.

val server_rpc : ('request, 'request_mode, 'response, 'response_mode) t -> ('request, 'request_mode, 'response, 'response_mode, Grpc.Rpc.Service_spec.t) Grpc.Rpc.Server_rpc.t

server_rpc is used by Grpc_server to furnish the server implementation for a given RPC.

module Private : sig ... end

The Private module is not meant to be used by the users of the library directly. It is exported for tests.