๐ Learning and exploring gRPC.
A high-performance, open source universal RPC framework
This repository illustrates different concepts, patterns and examples via standalone subprojects. Each subproject is completely independent of the others and do not depend on the root project. This standalone subproject constraint forces the subprojects to be complete and maximizes the reader's chances of successfully running, understanding, and re-using the code.
The subprojects include:
A working example of client- and server-side JavaScript (Node.js) programs that communicate over gRPC.
See the README in node/.
A working example of client- and server-side Java programs that communicate over gRPC.
See the README in java/.
A working example of client- and server-side Go programs that communicate over gRPC.
See the README in go/.
A working example of client- and server-side Swift programs that communicate over gRPC.
See the README in swift/.
Protobuf is well-maintained and feature-rich. One thing that often confuses me, especially because I become newly acquainted with Protobuf every year or so, is the versioning strategy. Read the docs!
- Protobuf official site
- Protobuf official site: Language Guide for "proto3"
- Protobuf GitHub repo: JavaScript support
- Protobuf official site: Other Languages
- gRPC official site: Quick start for Node.js/JavaScript
- Unfortunately, the Node.js/JavaScript implementation does not include instructions on using the plugin mechanism of
protoc
to generate gRPC JavaScript code from*.proto
files. By contrast, the GoLang implementation does have instructions so I used the GoLang instructions as a working example to figure out how to do the JavaScript one.
- Unfortunately, the Node.js/JavaScript implementation does not include instructions on using the plugin mechanism of
- gRPC official site: Quick start for GoLang
- gRPC GitHub issues: a comment indicating how to use the gRPC Node plugin with protoc
- gRPC official site: Quick start for Go