This examples shows how to uses Gradle, the proto compiler, ts-protoc-gen
& @grpc/grpc-js
to build a fully typed gRPC application that runs on Node.js.
The proto compiler and ts-protoc-gen
compiler plugin are used to generate JavaScript & TypeScript files from the proto definitions. The protobuf-gradle-plugin
Gradle plugin is used to run the compiler from Gradle.
google-protobuf
& @grpc/grpc-js
are used at runtime.
- package.json - Dependencies and node build scripts
- build.gradle - The Gradle build file
- proto/ - Protobuf definitions and generated types
- server.ts - The grpc server
- client.ts - The grpc client
Install dependencies:
npm install
# Apple M1 users should install for x64 due to grpc-tools not supporting arm64
npm i --target_arch=x64
Use Gradle & ts-protoc-gen
to generate the TypeScript files:
./gradlew generateProto
This is aliased as a npm script:
npm run build:proto
This simple app demonstrates the different gRPC calls you can perform.
First generated the types and build the application files:
npm run build
Start the server:
npm run start:server
Now run the client by specifying which example you want to run:
npm run start:client -- --unary
npm run start:client -- --server-streaming
npm run start:client -- --client-streaming
npm run start:client -- --bidi-streaming