This exploratory work has been an enjoyable educational experience for me. I am thankful to the authors and maintainers of the open-source upstream libraries I have been able to build upon here and learn from. Thank you!
eio-rpc is a collection of opinionated libraries designed to build RPC clients and servers with eio.
It currently relies on the following dependencies:
- Concurrency library: eio
- RPC transport and runtime: ocaml-grpc
- Serialization: ocaml-protoc
ocaml-grpc is a modular library that provides the building blocks for gRPC functionality. It supports various use cases and works with lwt, async, and eio clients/servers. It also supports various libraries implementing the protobuf serialization (ocaml-protoc and ocaml_protoc_plugin). As such, it offers a generic set of tools without recommending a specific choice. This opens the door for more specialized libraries, like eio-rpc, that focus on a particular combination of dependencies and offer a more streamlined interface.
The code documentation of the latest release is built with odoc and published to GitHub pages here.
This repo depends on unreleased packages that are published to a custom opam-repository, which must be added to the opam switch used to build the project.
For example, if you use a local opam switch, this would look like this:
git clone https://github.com/mbarbin/eio-rpc.git
cd eio-rpc
opam switch create . 5.2.0 --no-install
eval $(opam env)
opam repo add mbarbin https://github.com/mbarbin/opam-repository.git
opam install . --deps-only --with-test --with-docOnce this is setup, you can build with dune:
dune build @all @runtest