Hi!

I'm the author of the GopherJS gRPC-Web bindings 
<https://github.com/johanbrandhorst/protobuf>. I was introduced to Perkeep 
by Paul Jolly, who is the author of the GopherJS React bindings 
<https://myitcv.io/react> used by Perkeep to render some of its frontend 
UI. I thought since Perkeep has already invested in GopherJS through this 
UI it might be interested in trying out my gRPC-Web bindings to abstract 
away the communications layer between the frontend and backend in a 
familiar gRPC/Protobuf fashion.

The bindings are built on top of the Improbable gRPC-Web client 
<https://github.com/improbable-eng/grpc-web>. It features support for the 
Fetch API in supported browsers and automatically downgrades to XHR where 
necessary. It implements the gRPC-Web spec 
<https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md>. However, 
the gRPC-Web spec only mandates support for unary and server-side streaming 
at this time. My GopherJS bindings adds support for client-side and 
bidirectional streaming with a custom Websocket proxy on top. Please see my 
demo website <http://grpcweb.jbrandhorst.com/> for an example of this. It's 
only a bandaid until the gRPC-Web spec adds support for client-side and 
bidi-streaming.

I've submitted a small CL with a prototype of what this could look like on 
a small scale, to show how the bindings are used and hopefully give an idea 
of the impact on the codebase. At this time I only implemented it in one 
place, but ideally for something like this the whole communications layer 
between the frontend and backend would go through the generated interface.

https://camlistore-review.googlesource.com/c/camlistore/+/12406

Please let me know your thoughts!

Johan

-- 
You received this message because you are subscribed to the Google Groups 
"Camlistore" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to camlistore+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to