Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dialohq/ocaml-grpc
gRPC library for OCaml
https://github.com/dialohq/ocaml-grpc
grpc ocaml rpc
Last synced: 4 months ago
JSON representation
gRPC library for OCaml
- Host: GitHub
- URL: https://github.com/dialohq/ocaml-grpc
- Owner: dialohq
- License: bsd-3-clause
- Created: 2022-03-27T10:52:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-27T13:20:23.000Z (10 months ago)
- Last Synced: 2024-04-14T12:01:01.093Z (7 months ago)
- Topics: grpc, ocaml, rpc
- Language: OCaml
- Homepage: https://dialohq.github.io/ocaml-grpc
- Size: 674 KB
- Stars: 54
- Watchers: 6
- Forks: 7
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
- awesome-multicore-ocaml - Eio port
README
# OCaml gRPC
[![OCaml-CI Build Status](https://img.shields.io/endpoint?url=https%3A%2F%2Focaml.ci.dev%2Fbadge%2Fdialohq%2Focaml-grpc%2Fmain&logo=ocaml)](https://ocaml.ci.dev/github/dialohq/ocaml-grpc)
[![docs](https://img.shields.io/badge/doc-online-blue.svg)](https://dialohq.github.io/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](https://dialohq.github.io/ocaml-grpc) and the [examples](./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](./examples/helloworld-tutorial.md) tutorial provides a basic example of using gRPC with LWT, perfect for first time users!
* The [routeguide](./examples/routeguide-tutorial.md) 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.