Protobuf & gRPC-Web Tester
Local codec · optional gRPC-WebCompile proto schemas, encode and decode messages, inspect wire fields, compare contracts, and call gRPC-Web.
Schema, JSON, and binary bytes stay in memory unless you explicitly invoke an endpoint.
Ready for a Protobuf schema
Paste or open a .proto file to compile messages, encode real bytes, inspect the wire format, compare contracts, and configure a gRPC-Web call.
How to use it
- 01
Compile a proto schema
Paste or open a .proto file and browse messages, enums, services, methods, field numbers, maps, repeated fields, and streams.
- 02
Inspect real bytes
Generate ProtoJSON, encode it to binary, decode Hex or Base64, and inspect tag numbers, wire types, offsets, values, and raw byte ranges.
- 03
Compare or invoke
Detect risky field and RPC changes, or explicitly send a gRPC-Web request and inspect message frames, trailers, status, and generated Fetch code.
Frequently asked questions
Can a browser call a normal gRPC endpoint directly?
Usually not. The endpoint or proxy must implement gRPC-Web, allow this site's CORS request, and expose gRPC status and message headers where needed.
Which streaming modes work?
Unary requests are supported. Server-streaming responses can be inspected in grpc-web-text mode after the response completes; client and bidirectional streaming are not available here.
Why are 64-bit values represented as strings?
ProtoJSON commonly represents 64-bit integer values as decimal strings so JavaScript does not lose precision beyond its safe integer range.
Does renaming or removing a field matter if the wire number stays stable?
A name change can break JSON users while preserving binary wire compatibility. Removing a field without reserving its number or name creates a future reuse risk, so the diff keeps it visible.
Related tools
Keep working with other focused browser utilities.