0.1.5 • Published 2 years ago

grpc-server-reflection v0.1.5

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

grpc-server-reflection

gRPC server reflection for Node.js

npm.io npm.io

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:

packagefull support@grpc/grpc-js supportgrpc supportframework agnosticservice detection
grpc-server-reflection✅️✅️✅️✅️✅️
nice-grpc-server-reflection✅️✅️
grpc-node-server-reflection✅️
grpc-reflection-js✅️

License

MIT