#gRPC Web implementation for #golang and #TypeScript

https://github.com/improbable-eng/grpc-web

gRPC is a modern, HTTP2-based protocol, that provides RPC semantics using the strongly-typed binary data format of protocol buffers across multiple languages (C++, C#, Golang, Java, Python, NodeJS, ObjectiveC, etc. gRPC-Web is a cutting-edge spec that enables invoking gRPC services from modern browsers.

Components of the stack are based on Golang and TypeScript:

  • grpcweb – a Go package that wraps an existing grpc.Server as a gRPC-Web http.Handler for both HTTP2 and HTTP/1.1
  • grpcwebproxy – a Go-based stand-alone reverse proxy for classic gRPC servers (e.g. in Java or C++) that exposes their services over gRPC-Web to modern browsers
  • ts-protoc-gen – a TypeScript plugin for the protocol buffers compiler that provides strongly typed message classes and method definitions
  • grpc-web-client – a TypeScript gRPC-Web client library for browsers, not meant to be used directly by users