@lambdalisue/connectrpc-grpcreflect
v0.1.1
Published
A connect-es module for gRPC reflection
Downloads
1,112
Readme
@lambdalisue/connectrpc-grpcreflect
Server Reflection implementation for gRPC in ConnectRPC for ECMAScript/TypeScript.
Overview
This project provides gRPC Server Reflection Protocol support for ConnectRPC services, enabling tools like grpcurl and grpc_cli to discover and interact with your services dynamically.
Installation
npm install @lambdalisue/connectrpc-grpcreflectUsage
Basic Usage
import { ConnectRouter } from "@connectrpc/connect";
import { registerServerReflectionFromFileDescriptorSet } from "@lambdalisue/connectrpc-grpcreflect";
import { fileDescriptorSet } from "./generated/descriptor_pb.js";
const router = new ConnectRouter();
// ... register your services
// Add reflection support
registerServerReflectionFromFileDescriptorSet(router, fileDescriptorSet);From Binary File
import { registerServerReflectionFromFile } from "@lambdalisue/connectrpc-grpcreflect";
// Load FileDescriptorSet from a binary file
registerServerReflectionFromFile(router, "./path/to/descriptor.binpb");From Uint8Array
import { registerServerReflectionFromUint8Array } from "@lambdalisue/connectrpc-grpcreflect";
// Load from binary data
const binaryData = await fetch("/api/descriptor").then((res) =>
res.arrayBuffer(),
);
registerServerReflectionFromUint8Array(router, new Uint8Array(binaryData));This adds both v1 and v1alpha versions of the gRPC Server Reflection Protocol to your ConnectRPC server, allowing tools like grpcurl to discover and interact with your services:
# List services
grpcurl -plaintext localhost:8080 list
# Describe a service
grpcurl -plaintext localhost:8080 describe mypackage.MyService
# Call a method
grpcurl -plaintext -d '{"name": "World"}' localhost:8080 mypackage.MyService/SayHelloDevelopment
Prerequisites
- Node.js
- pnpm
Setup
# Clone the repository
git clone https://github.com/lambdalisue/ts-connectrpc-grpcreflect.git
cd ts-connectrpc-grpcreflect
# Install dependencies
pnpm install
# Generate code
pnpm run genScripts
pnpm run gen- Generate code from protobuf definitionspnpm test- Run testspnpm run build- Build the project
License
MIT
