OCamlformat RPC API.
This module defines the commands exchanged between the server and the client, and the way to build RPC clients.
The whole API is functorized over an
IO module defining the blocking interface for reading and writing the data.
After you decided on the
IO implementation, the
Ocamlformat_rpc_lib.Make API can then be instantiated:
module RPC = Ocamlformat_rpc_lib.Make (IO)
module Protocol : sig ... end
type format_args = Protocol.format_args
val empty_args : format_args
module Version = Protocol.Version
module type IO = sig ... end
Defines the blocking interface for reading and writing to Cohttp streams
For a basic working example, see: test/rpc/rpc_test.ml.
ocamlformat-rpc-lib API is versioned to offer some basic backwards compatibility. Note that this guarantee is "best effort", meaning the authors will try to minimize the changes over time and preserve the original behavior or versioned clients as much as possible. However structural changes may happen.