create_rpc ?name ~f ~bin_input ~bin_output () will create an Rpc.Rpc.t with
name if specified and use f as an implementation for this Rpc. It returns back a
Function.t, a type-safe Rpc protocol.
create_pipe ?name ~f ~bin_input ~bin_output () will create an Rpc.Pipe_rpc.t
with name if specified. The implementation for this Rpc is a function that creates
a Pipe.Reader.t and a Pipe.Writer.t, then calls f arg ~writer and returns the
reader.
Notice that aborted is not exposed. The pipe is closed upon aborted.
create_one_way ?name ~f ~bin_msg () will create an Rpc.One_way.t with name if
specified and use f as an implementation.
of_async_rpc ~f rpc is the analog to create_rpc but instead of creating an Rpc
protocol, it uses the supplied one
of_async_pipe_rpc ~f rpc is the analog to create_pipe but instead of creating a
Pipe rpc protocol, it uses the supplied one.
Notice that aborted is not exposed. The pipe is closed upon aborted.
of_async_one_way_rpc ~f rpc is the analog to create_one_way but instead of
creating a One_way rpc protocol, it uses the supplied one