package grpc

  1. Overview
  2. Docs

Description

This library builds some of the signatures and implementations of gRPC functionality. This is used in the more specialised package grpc-lwt which has more machinery, however this library can also be used to do some bits yourself.

Tags

network rpc serialisation

Published: 25 Oct 2023

README

OCaml gRPC

Pure OCaml implementation of gRPC over HTTP2.

Supported features:

  • RPCs: unary, server streaming, client streaming, bidirectional streaming

  • Client (Eio, Lwt and Async), server (Eio, Lwt and Async)

Getting Started

To get started, browse the documentation and the examples:

  • examples/greeter-{client,server}-{async,lwt,eio} implements a basic "Hello world" service using ocaml-protoc-plugin for Protobuf serialization

  • examples/greeter-{client-tls-async,server-ssl-lwt} showcases the greeter service over a secure connection

  • examples/etcd interfaces with an external etcd server and shows how to use ocaml-protoc-plugin for Protobuf serialization

  • examples/routeguide implements the "Route Guide" service using Eio and ocaml-protoc-plugin for Protobuf serialisation.

  • examples/routeguide-{client,server}-{async,lwt} showcases the Route Guide service using Async and LWT.

Tutorials

  • The helloworld tutorial provides a basic example of using gRPC with LWT, perfect for first time users!

  • The routeguide tutorial provides a complete example of using gRPC with Eio and all its features.

Acknowledgments

This MVP version of this library was built by @jeffa5. Andrew gratiously passed the baton to our team to develop it into a full fledged production-ready implementation.

Dependencies (5)

  1. ppx_deriving
  2. h2 >= "0.9.0" & < "0.13.0"
  3. uri >= "4.0.0"
  4. ocaml >= "4.08"
  5. dune >= "3.7"

Dev Dependencies (1)

  1. odoc with-doc

Used by (4)

  1. grpc-async >= "0.2.0"
  2. grpc-bench
  3. grpc-eio
  4. grpc-lwt >= "0.2.0"

Conflicts

None

OCaml

Innovation. Community. Security.