package grpc

All checked builds pass
  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

Added to opam-repository:

README

OCaml gRPC

OCaml-CI Build Status docs

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

Optional Dependencies

None

Used by (4)

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

Conflicts

None

Build status

Results of building grpc with each compiler on check.ci.ocaml.org, run of against opam-repository 7cdc698. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
0.2.0 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure