gRPC Client
Veyak includes a native, high-performance gRPC client powered by Rust and Tokio HTTP/2 transport. You can discover services dynamically using gRPC Server Reflection, inspect service and method descriptors, edit protobuf payloads in JSON, send custom metadata, and execute both unary and streaming invocations.
Key Features
- Server Reflection — Automatically discover packages, services, and methods by providing a server address.
- Protobuf Schemas — Compile and parse local
.protofiles with custom include paths. - Multiple Call Modes — Unary, Server Streaming, Client Streaming, and Bidirectional Streaming.
- Metadata Management — Key-value editor for request and authorization headers.
- Monaco JSON Editor — Syntax-highlighted request editor with schema type hints.
- Response & Stream Viewer — Live message logging, latency timing, gRPC status badges (
OK,UNAVAILABLE,NOT_FOUND, etc.), and copy actions. - Security & TLS — One-click toggle between plaintext (h2c) and TLS connections, with configurable SSL certificate verification.
Creating a gRPC Request
- In the sidebar, click the + button next to your collection.
- Select gRPC from the item creation menu.
- Enter a descriptive name for your request (e.g.,
Greeter / SayHello). - The request will open in a dedicated gRPC editor tab with the cyan
gRPCbadge.
Discovering Services (Server Reflection)
The easiest way to work with gRPC services is via Server Reflection:
- In the address bar, enter your server host and port:
or for secure servers:grpcb.in:9000grpc.postman-echo.com:443 - If your endpoint requires TLS, click the TLS toggle button to enable encryption.
- Click the Reflect button (or press
Enterin the address bar). - Veyak connects to the reflection service, queries available descriptors, and populates the Service and Method dropdowns.
Tip: If you are testing a local service with a self-signed TLS certificate, navigate to Settings (
Ctrl+,orCmd+,) and toggle off Validate SSL Certificates.
Local Proto Files
If your target gRPC server does not have reflection enabled, you can provide .proto definitions directly:
- Import your
.protofile and any directory dependencies. - Veyak compiles the descriptors on the fly using its embedded protobuf compiler engine in
veyak-grpc.
Service & Method Selection
Once reflection completes or proto files are loaded:
- Service Selector — Choose the target service (e.g.
helloworld.Greeter). - Method Selector — Select the RPC method (e.g.
SayHello). - Veyak automatically displays:
- Stream Type Badge —
Unary,Server Stream,Client Stream, orBidi Stream. - Type Info — Request type (e.g.,
HelloRequest) and response type (e.g.,HelloReply).
- Stream Type Badge —
Stream Types
| Stream Type | Description |
|---|---|
| Unary | Single request message sent, single response message received. |
| Server Streaming | Single request initiated, server streams multiple response messages over time. |
| Client Streaming | Client sends a continuous stream of messages, server responds once. |
| Bidirectional Streaming | Both client and server stream messages asynchronously over an active HTTP/2 channel. |
Composing Messages
Under the Message tab in the request panel:
- The editor utilizes Monaco configured for JSON representations of your protobuf messages.
- Field types match your Protobuf definition:
{ "name": "Veyak User", "greeting_count": 1 } - Use
Shift+Alt+Fto format your payload. - Environment variables like
"token": "{{API_KEY}}"are supported in values.
gRPC Metadata
Switch to the Metadata tab to add custom key-value headers to the gRPC call:
| Column | Description |
|---|---|
| Enabled | Toggle whether this header is included in the call. |
| Key | Metadata header key (e.g. authorization, x-request-id). |
| Value | Header value or variable placeholder (e.g. Bearer {{JWT_TOKEN}}). |
Invoking the Call
Click the Invoke button:
- The status bar changes to Invoking… (or Streaming for streaming calls).
- The response appears in the right-hand panel:
- Status Badge —
OK(0),CANCELLED(1),UNKNOWN(2),INVALID_ARGUMENT(3),NOT_FOUND(5),UNAVAILABLE(14), etc. - Latency — Elapsed duration measured in milliseconds.
- Direction Indicator — Sent messages (↑) and received messages (↓).
- JSON Formatter — Auto-formatted response payload with a 1-click copy button.
- Status Badge —
To terminate an in-flight streaming call, click Cancel.
Keyboard Shortcuts
Cmd+Enter/Ctrl+Enter— Invoke active gRPC call.Cmd+S/Ctrl+S— Save request configuration to your collection.