gRPCToolsetwire inspector
proto3 · wire format
中文English

Schema serialization and deserialization

Paste .proto source, compile it in memory (no protoc required), and convert in both directions: bytes → structured fields → JSON and JSON → bytes. Field names, enum names, nested messages, repeated fields, and maps follow the schema.

Schema definition

proto
Click “Apply schema” after editing; google/protobuf/* standard imports are available
Schema applied
Defined messages (click to fill the target message)

Deserialization: bytes → structure

decode
Enter protobuf bytes or encoded text
Deserialization complete
Message
helloworld.HelloReply
Input bytes
10
Fields
3
Unknown fields
None
Field#TypeCardinalityValuePayload bytes
message1stringoptional"hi"6869
ts2int64optional1700000000
history3message helloworld.HelloRequestrepeated<unset>
messagestring"hi"
#
1
Cardinality
optional
Payload bytes
6869
tsint641700000000
#
2
Cardinality
optional
Payload bytes
historymessage helloworld.HelloRequest<unset>
#
3
Cardinality
repeated
Payload bytes

JSON

{
  "message": "hi",
  "ts": "1700000000"
}

Serialization: JSON → bytes

encode
Enter JSON matching the current schema
Serialization complete
Message
helloworld.HelloReply
Output bytes
28
Fields
3

hex

0a0268691080e2cfaa061a100a046772706310031a01611a01622001

base64

CgJoaRCA4s+qBhoQCgRncnBjEAMaAWEaAWIgAQ==

Field structure

Field#TypeCardinalityValuePayload bytes
message1stringoptional"hi"6869
ts2int64optional1700000000
history3message helloworld.HelloRequestrepeated[]
messagestring"hi"
#
1
Cardinality
optional
Payload bytes
6869
tsint641700000000
#
2
Cardinality
optional
Payload bytes
historymessage helloworld.HelloRequest[]
#
3
Cardinality
repeated
Payload bytes