Platform-independent core of Async RPC library


module Model : sig ... end


module type Version_shared = sig ... end
module Register (Version_i : sig ... end) : sig ... end

add a new version to the set of versions available via dispatch_multi and dispatch_iter_multi.

module Register_raw (Version_i : sig ... end) : sig ... end

Register_raw is like Register except you get to deal with the whole pipe. This is useful if, e.g., your model_of_response function can fail, so that you'd like to filter items out from the result pipe.

include S with type query := Model.query with type response := Model.response with type error := Model.error

Multi-version dispatch.

The return type varies slightly from Rpc.Pipe_rpc.dispatch to make it clear that conversion of each individual element in the returned pipe may fail.

val rpcs : unit -> Rpc.Any.t list

All rpcs supported by dispatch_multi

val versions : unit -> Core_kernel.Int.Set.t

All versions supported by dispatch_multi. (useful for computing which old versions may be pruned)

val name : string