Skip to content

gRPC / gRPC-Web Frame Inspector

Decode standard gRPC, gRPC-Web binary, and gRPC-Web text streams. Inspect frame headers, message lengths, compression flags, trailers, status, and embedded Protobuf payloads.

Inspect a gRPC or gRPC-Web message stream

Frames, supported compression, trailers, and possible Protobuf payloads are decoded in a browser worker. No endpoint is contacted and no request is replayed.

The compression algorithm is carried in the grpc-encoding HTTP header, not in the frame. Select gzip or deflate only when the captured header declares it.

gRPC stream details

Frame boundaries, compressed flags, message lengths, trailers, gRPC status, and possible Protobuf fields will appear here.

Separate transport framing from message bytes

DecodeLens maps every frame header and payload to exact source offsets, treats grpc-encoding as external metadata, parses gRPC-Web trailers, and hands complete data payloads to the Protobuf wire decoder without contacting the service.

Framing and protocol boundaries

  • Standard gRPC frames use a one-byte compressed flag and four-byte big-endian message length; gRPC-Web additionally carries response trailers in body frames.
  • gRPC-Web text may contain independently padded Base64 chunks. The inspector joins decoded chunks before parsing frame boundaries.
  • gzip and deflate message decompression are supported when explicitly selected. Snappy and custom grpc-encoding values are not decoded.
  • A structurally valid payload is passed to the schema-less Protobuf decoder; field names and exact types still require a matching .proto schema.
  • The tool does not parse HTTP/2 frames, HPACK, network captures, TLS, service reflection, or remote schemas, and it never replays the RPC.

Continue with tools that decode, convert, inspect, or verify the same data.

Inspect a gRPC-Web response copied from DevTools

Paste the Base64 response body, select the grpc-encoding header value if the compressed bit is set, then inspect each data frame, decoded Protobuf fields, and the final grpc-status trailer.

gRPC-Web text

AAAAAB4IlgESCkRlY29kZUxlbnM…

Frames and trailers

Data frame · 30 bytes · possible Protobuf
Trailer frame · grpc-status 0 · OK

gRPC / gRPC-Web Frame Inspector FAQ

What are the first five bytes of a gRPC message?

The first byte is the per-message compressed flag and the next four bytes are the unsigned big-endian payload length. The declared number of message bytes follows immediately.

How are gRPC-Web trailers encoded?

gRPC-Web sets the most significant marker bit and places an HTTP/1-style header block in the payload. grpc-status and grpc-message are normally included in the final trailer frame.

Why must I select grpc-encoding?

The frame contains only a compressed bit. The actual algorithm is declared separately in the HTTP grpc-encoding header, so guessing it from payload bytes could produce misleading results.