gRPC over HTTP/2 in pure OCaml
1.9 kB
63 lines
1(lang dune 3.21)
2(name nox-grpc)
3(source (tangled gazagnaire.org/ocaml-grpc))
4(using mdx 0.4)
5
6(generate_opam_files true)
7(implicit_transitive_deps false)
8
9(license ISC)
10(authors "Thomas Gazagnaire <thomas@gazagnaire.org>")
11(maintainers "Thomas Gazagnaire <thomas@gazagnaire.org>")
12
13(package
14 (name nox-grpc)
15 (synopsis "gRPC over HTTP/2 in pure OCaml")
16 (tags (org:blacksun protocol codec.binary network))
17 (description
18 "An I/O-free implementation of the gRPC-over-HTTP/2 wire protocol:
19 length-prefixed message framing (projected to a verified C parser via
20 EverParse), the canonical status codes, call timeouts, content type and
21 custom metadata, the grpc-status/grpc-message trailers, and the
22 compression-algorithm names. The core performs no I/O, so it runs unchanged
23 under Eio, in tests, and in fuzz harnesses.")
24 (depends
25 ascii
26 (ocaml (>= 5.1))
27 (wire (>= 1.0.0))
28 nox-rope
29 (bytesrw (>= 0.1))
30 (base64 (>= 3.5))
31 nox-protobuf
32 probe
33 (fmt (>= 0.9))
34 (odoc :with-doc)
35 (alcotest (and (>= 1.7) :with-test))
36 (alcobar :with-test)
37 (mdx :with-test)))
38
39(package
40 (name nox-grpc-eio)
41 (synopsis "Eio backend for nox-grpc")
42 (tags (org:blacksun network eio))
43 (description
44 "Eio adapter for nox-grpc: a multicore gRPC server built on the nox-h2-eio
45 server loop and Eio.Executor_pool, and a gRPC client over an Eio flow. It
46 shuttles bytes between Eio and the I/O-free nox-grpc message/codec/metadata
47 layers, accumulating request messages per stream and emitting the
48 status-trailer response.")
49 (depends
50 (re :with-test)
51 (ocaml (>= 5.1))
52 nox-grpc
53 nox-h2
54 nox-h2-eio
55 (fmt (>= 0.9))
56 (eio (>= 1.0))
57 (odoc :with-doc)
58 (nox-protobuf :with-test)
59 (cstruct :with-test)
60 (eio_main (and (>= 1.0) :with-test))
61 (eio-net (and (>= 0.1) :with-test))
62 (alcobar :with-test)
63 (alcotest (and (>= 1.7) :with-test))))