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
protoClick “Apply schema” after editing; google/protobuf/* standard imports are available
Schema applied
Defined messages (click to fill the target message)
Deserialization: bytes → structure
decodeEnter protobuf bytes or encoded text
Deserialization complete
- Message
- helloworld.HelloReply
- Input bytes
- 10
- Fields
- 3
- Unknown fields
- None
| Field | # | Type | Cardinality | Value | Payload bytes |
|---|---|---|---|---|---|
| message | 1 | string | optional | "hi" | 6869 |
| ts | 2 | int64 | optional | 1700000000 | |
| history | 3 | message helloworld.HelloRequest | repeated | <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
encodeEnter JSON matching the current schema
Serialization complete
- Message
- helloworld.HelloReply
- Output bytes
- 28
- Fields
- 3
hex
0a0268691080e2cfaa061a100a046772706310031a01611a01622001
base64
CgJoaRCA4s+qBhoQCgRncnBjEAMaAWEaAWIgAQ==
Field structure
| Field | # | Type | Cardinality | Value | Payload bytes |
|---|---|---|---|---|---|
| message | 1 | string | optional | "hi" | 6869 |
| ts | 2 | int64 | optional | 1700000000 | |
| history | 3 | message helloworld.HelloRequest | repeated | [] |
messagestring"hi"
- #
- 1
- Cardinality
- optional
- Payload bytes
- 6869
tsint641700000000
- #
- 2
- Cardinality
- optional
- Payload bytes
historymessage helloworld.HelloRequest[]
- #
- 3
- Cardinality
- repeated
- Payload bytes