gRPC in D using gRPC Core
hatf0
harrison at 0xcc.pw
Tue Nov 12 00:23:25 UTC 2019
I've recently spent the past few days writing a higher-level
wrapping around gRPC Core (attempting to keep everything as safe
as possible), and have reached a point where technical demos are
possible. There are definitely some bugs that I have to work out
(and LOTS of code to document.. this was mostly an experiment to
see if it would work or not), but I'd definitely like to get the
community's take and help on maintaining this library.
Currently, bidirectional streaming (server <-> client) is broken
for an unknown reason, but client OR server streaming
independently work great (using Fibers!). The library is highly
multi-threaded (each "Service" has a thread spun up for it),
implementing mutexes up the wazoo (the majority of which I
definitely think are unnecessary, but there is very little
documentation for gRPC Core which specifies memory safety..). As
well, the client-side has not been fully finished (rather, I've
been focusing much more on the server side as it's easier to
debug), however, the library is usable at it's current state
(while being a little rough due to lots of debugging "writeln"s
being all over the place), and it requires a modified version of
the protobuf compiler written by Dracos Carp. You can pull a
rudimentary version of the library from here:
https://github.com/hatf0/grpc-d, with the forked protobuf
compiler being available here:
https://github.com/hatf0/protobuf-d, and the gRPC "greeter"
example available here: https://github.com/hatf0/grpc-demo.
More information about the Digitalmars-d-announce
mailing list