Brussels / 3 & 4 February 2018


Creating GopherJS Apps with gRPC-Web

This presentation will introduce gRPC, gRPC-Web and GopherJS to attendees. At the end of the presentation, they will know how to create a GopherJS frontend and leverage GopherJS gRPC-Web bindings for the communications with a generic Go gRPC backend.

I'm the author of the GopherJS gRPC-Web bindings. The library is based on the TypeScript gRPC-Web library by Improbable. It allows the user to define the frontend-backend interface as a proto3 protobuf file and generate a Go-gRPC-client-like interface for the GopherJS frontend to consume. In addition, it allows the user to write GopherJS frontends for generic gRPC servers, with the use of a proxy developed by Improbable. For more information about gRPC-Web see Improbable's blog post.

My library further extends the capabilities of the Improbable library by adding client side and bidirectional streaming over a websockets with a custom Go proxy library.

I have developed a demo for the library, available on

The presentation will start with a quick introduction to Protobuf, gRPC and gRPC-Web, then introduce GopherJS and my GopherJS gRPC-Web bindings and walk through development of a small web app using GopherJS, the GopherJS gRPC-Web bindings and a generic Go gRPC backend server. I have previously delivered a lightning talk to the London Go User Group on the topic of this library, recording available. For this talk I will be able to talk more about the implementation details and walk through getting started with developing a GopherJS web app. I will wrap up with a summary of what we've discussed.


Photo of Johan Brandhorst Johan Brandhorst