-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async server implementation #27
Conversation
Wow, you’re on fire! Thank you for this contribution. |
Thanks. I’m not sure the types of the Pipe on the streaming type signatures
are quite right. Please hold off on merging while I do some more research.
…On Sat, 13 May 2023 at 6:02 pm, Daniel Quernheim ***@***.***> wrote:
Wow, you’re on fire! Thank you for this contribution.
I don’t have enough experience with Async unfortunately. Would you be
willing to take a look @mbacarella <https://github.com/mbacarella> ?
—
Reply to this email directly, view it on GitHub
<#27 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABJXOLMOAX2FKU4I3PGL5TXF453FANCNFSM6AAAAAAXTW7FZA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
b167198
to
20d11f1
Compare
I am happier with this version @mbacarella. The types in type unary = string -> (Grpc.Status.t * string option) Deferred.t
(** [unary] is the type for a unary grpc rpc, one request, one response. *)
type client_streaming =
string Pipe.Reader.t -> (Grpc.Status.t * string option) Deferred.t
(** [client_streaming] is the type for an rpc where the client streams the requests and the server responds once. *)
type server_streaming =
string -> string Pipe.Writer.t -> Grpc.Status.t Deferred.t
(** [server_streaming] is the type for an rpc where the client sends one request and the server sends multiple responses. *)
type bidirectional_streaming =
string Pipe.Reader.t -> string Pipe.Writer.t -> Grpc.Status.t Deferred.t
(** [bidirectional_streaming] is the type for an rpc where both the client and server can send multiple messages. *) There is a route guide implementation using Async that works using |
protoc | ||
-I | ||
. | ||
"--ocaml_out=open=Core;annot=[@@deriving show { with_path = false }, eq, sexp, compare]:." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Provides an example of deriving sexp and ppx_jane for ocaml-protoc-plugin
9f8fe00
to
7411055
Compare
The failure on debian-12-5.1 should be fixed soon. Core.v0.16.0 is not compatible with OCaml 5.1. |
7411055
to
6efceab
Compare
fd717a5
to
c1740c8
Compare
The implementation is available with this commit 2b13b10
It provides a minimal working version of server.ml for Async using Pipes with a greeter example server for testing. However if needs further testing of the other RPC types by implementing the route guide server and testing on real world examples.
This is on top of #25.