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.Serveras a gRPC-Web
http.Handlerfor 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