Opinionated wrappers to build RPC clients and servers with ocaml-twirp
  • OCaml 95.2%
  • Dune 4.2%
  • Makefile 0.6%
Find a file
Mathieu Barbin ad98ba8fde
Update README to reflect project archive status
Added a warning about the repository being archived and expressed gratitude for the learning experience.
2025-10-17 12:52:17 +02:00
.github Bump actions/checkout from 4 to 5 2025-09-01 06:18:03 +00:00
.vscode Init dune project from template 2025-04-10 11:08:50 +02:00
example/keyval More consistent cli commands and args doc strings 2025-07-28 18:57:26 +02:00
lib Configure ppx_js_style to allow let operators 2025-07-29 09:06:22 +02:00
.gitattributes Init repo 2025-04-10 11:08:23 +02:00
.gitignore Enable instrumentation 2025-04-17 11:40:26 +02:00
.ocamlformat Init dune project from template 2025-04-10 11:08:50 +02:00
CHANGES.md Edit README and CHANGES 2025-04-15 23:42:21 +02:00
dune Init dune project from template 2025-04-10 11:08:50 +02:00
dune-project Remove pplumbing dep (unused) 2025-09-21 17:01:07 +02:00
LICENSE Init dune project from template 2025-04-10 11:08:50 +02:00
Makefile Init dune project from template 2025-04-10 11:08:50 +02:00
README.md Update README to reflect project archive status 2025-10-17 12:52:17 +02:00
twirpc-dev.opam Remove pplumbing dep (unused) 2025-09-21 17:01:07 +02:00
twirpc-tests.opam Remove pplumbing dep (unused) 2025-09-21 17:01:07 +02:00
twirpc.opam Remove pplumbing dep (unused) 2025-09-21 17:01:07 +02:00
twirpc.opam.template Init dune project from template 2025-04-10 11:08:50 +02:00

twirpc

⚠️ 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!


CI Status Coverage Status

twirpc is a collection of opinionated wrappers to build RPC clients and servers with ocaml-twirp.

Goals and status

This is mostly an exploratory work to gain experience with the dependencies.

Relationship to eio-rpc and others

I have another repo where I have conducted similar exploratory work. See:

I have in fact copied large portions of the code used in this repository from my earlier work in eio-rpc. I don't intend to maintain it all overtime, so this is just some convenient workflow for me at the moment, so I can easily diff the repos and appreciate the differences between the setups. TBD.

Build

This repo depends most likely 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/twirpc.git
cd twirpc
opam switch create . 5.3.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