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

module Make (IO : IO) : sig ... end

For a basic working example, see: test/rpc/rpc_test.ml.


The 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.