gRPCToolset线格式检查器
proto3 · 线格式
中文English

gRPC 消息调试与处理

面向 gRPC / protobuf 的线上调试工具。两条路径:没有 proto 时按线格式启发式还原字段树;有 proto 时用动态反射做严格的结构化序列化与反序列化。

从任务开始

你手里有 .proto Schema 吗?

choose

两条解析路径

overview

路径一 · 无 Schema 反序列化

直接粘贴抓包得到的 hex / base64 载荷。工具按 protobuf 线格式逐字段还原,并对每个字段给出一组候选解释:varint 同时展示 uint64 / int64 / zigzag / bool,length-delimited 同时尝试 string、嵌套消息与 packed 数组。

适用于:线上抓包、日志里的裸字节、丢失 proto 的历史数据。

路径二 · 有 Schema 序列化 / 反序列化

粘贴 .proto 源码,工具在内存中编译(无需 protoc),然后用反射完成字节 → 结构化字段 → JSON,以及 JSON → 字节两个方向。字段名、枚举名、嵌套消息、repeated / map / oneof 都会按 schema 还原。

适用于:接口联调、构造请求体、校验对端返回值。

protobuf 线类型速查

reference
线类型名称可能的字段类型
0varintint32 / int64 / uint32 / uint64 / sint32 / sint64 / bool / enum
164-bitfixed64 / sfixed64 / double
2length-delimitedstring / bytes / 嵌套消息 / packed 重复字段
3start groupgroup(已废弃,proto2 遗留)
4end groupgroup 结束标记(已废弃)
532-bitfixed32 / sfixed32 / float

gRPC 分帧格式

framing
+---------------+-------------------------------+-------------------------------+
| 1 字节        | 4 字节(大端)                | N 字节                        |
| 压缩标志      | 消息长度                      | 消息载荷(protobuf)          |
| 0=identity    |                               |                               |
| 1=compressed  |                               |                               |
+---------------+-------------------------------+-------------------------------+

选择“按 gRPC 帧解析”时,工具会逐帧剥离这 5 字节前缀并分别解析载荷;压缩帧(标志位为 1)只提示不做解压。