grpc-server-reflection
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

grpc-server-reflection

gRPC server reflection for Node.js

Usage

Generate descriptor set

Generate descriptor set with grpc_tools_node_protoc using descriptor_set_out and include_imports, e.g.:

grpc_tools_node_protoc
    --descriptor_set_out=path/to/descriptor_set.bin
    --include_imports
    ./api/**/*.proto

Add reflection

import { Server } from '@grpc/grpc-js';
import { addReflection } from 'grpc-server-reflection'

const server = new Server()
addReflection(server, 'path/to/descriptor_set.bin')

Notes

  • Reflection can be added before or after registering other services
  • All services from descriptor set are available
  • Server reflection service is not included (unless added manually in the descriptor set)
  • Running tests requires grpc_cli

Thanks

This project is heavily inspired and ports some parts of code from nice-grpc-server-reflection. I respectfully burrowed some of the code based on encouragement from the author, to available solid server reflection for Node.js for general purpose. I tried to implement it myself but failed due to some incompatibilities with binary format in protobuf-js with the C++ implementation. Using descriptor sets avoids as in the referenced project avoids the issues.

See also

Here is a list and comparison with the similar projects:

package full support @grpc/grpc-js support grpc support framework agnostic service detection
grpc-server-reflection ✅️ ✅️ ✅️ ✅️ ✅️
nice-grpc-server-reflection ✅️ ✅️
grpc-node-server-reflection ✅️
grpc-reflection-js ✅️

License

MIT

Package Sidebar

Install

npm i grpc-server-reflection

Weekly Downloads

9,524

Version

0.1.5

License

MIT

Unpacked Size

249 kB

Total Files

12

Last publish

Collaborators

  • grissius