0.1.5 • Published 2 years ago
grpc-server-reflection v0.1.5
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