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:
License
MIT