- OCaml 96.6%
- Dune 2.6%
- Shell 0.5%
- Makefile 0.3%
Added a warning about the repository being archived and expressed gratitude for the learning experience. |
||
|---|---|---|
| .github | ||
| .vscode | ||
| example/keyval | ||
| lib | ||
| .gitattributes | ||
| .gitignore | ||
| .headache.config | ||
| .headache.dirs | ||
| .ocamlformat | ||
| CHANGES.md | ||
| CODE_OF_CONDUCT.md | ||
| COPYING.HEADER | ||
| dune | ||
| dune-project | ||
| eio-rpc-tests.opam | ||
| grpc-client.opam | ||
| grpc-discovery.opam | ||
| grpc-quickcheck.opam | ||
| grpc-server.opam | ||
| grpc-spec.opam | ||
| grpc-stream.opam | ||
| grpc-test-helpers.opam | ||
| headache.sh | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
eio-rpc
⚠️ This repository is now a public archive. I have stopped developping the project and will not be maintaining it forward.
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
Relationship to ocaml-grpc
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.
Code Documentation
The code documentation of the latest release is built with odoc and published to GitHub pages here.
Build
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-doc
Once this is setup, you can build with dune:
dune build @all @runtest