The latest release of grpc-node cannot be used in a typescript project that uses -noImplicitAny. This is due to a signature being added without a specified return type. This causes the return type to implicitly be 'any' which TS explicitly disallows. For projects that use strict flags to catch lots of bugs, this prevents usage of this version of grpc entirely.
gRPC on Node.js
Implementations
For a comparison of the features available in these two libraries, see this document
C-based Client and Server
Directory: packages/grpc-native-core (see here for installation information)
npm package: grpc.
This is the existing, feature-rich implementation of gRPC using a C++ addon. It works on all LTS versions of Node.js on most platforms that Node.js runs on.
Pure JavaScript Client
Directory: packages/grpc-js
npm package: @grpc/grpc-js
This library is currently incomplete and experimental. It is built on the http2 Node module.
This library implements the core functionality of gRPC purely in JavaScript, without a C++ addon. It works on the latest version of Node.js on all platforms that Node.js runs on.
Other Packages
gRPC Protobuf Loader
Directory: packages/proto-loader
npm package: @grpc/proto-loader
This library loads .proto files into objects that can be passed to the gRPC libraries.
gRPC Tools
Directory: packages/grpc-tools
npm package: grpc-tools
Distribution of protoc and the gRPC Node protoc plugin for ease of installation with npm.
gRPC Health Check Service
Directory: packages/grpc-health-check
npm package: grpc-health-check
Health check service for gRPC servers.