Skip to content

Latest commit

 

History

History

grpc-proto-loader

grpc-proto-loader example

This example shows how to use @grpc/proto-loader & @grpc/grpc-js to build a fully typed CLI application that runs on Node.js.

@grpc/proto-loader to used to generate the types, as well as load the protobuf files at runtime using protobuf.js instead of google-protobuf.

No proto compiler is used. It's all JavaScript.

App layout

Generating the Types

Install dependencies:

npm install

Use @grpc/proto-loader to generate the TypeScript files:

$(npm bin)/proto-loader-gen-types --longs=String --enums=String --defaults --oneofs --grpcLib=@grpc/grpc-js --outDir=proto/ proto/*.proto

This is aliased as a npm script:

npm run build:proto

Running the App

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