入力形式を明示する
初期値はhexです。空白、コロン、0x接頭辞を許容します。Base64のデータは切り替えてください。短い文字列は両形式として成立することがあります。
バイトから構造を読む
まず生のwireデータを確認し、名前や型が必要な場合だけ自己完結した.proto定義を追加します。
バイトと定義はこのブラウザー内で処理し、送信しません。
wireメッセージまたはvarintを入力してください。
ログにバイナリだけ残っているとき、Protobufデコーダーはフィールド番号とwire型をバイト位置に結び付けます。.protoなしでも、どこで値が始まり終わるかは確かめられます。
ただしワイヤーフォーマットはフィールド名を保存しません。長さ付きの値は文字列、bytes、埋め込みメッセージ、packed値のどれにもなり得るため、候補表示を確定した型として扱わないでください。
推測の横に元のバイトを残します。
Protobufデコーダーは各フィールドに0始まりの開始・終了オフセット、wire型、元のhexを表示します。長さが不足した場合も失敗位置を示し、キャプチャとの照合を助けます。
単一の.protoを貼り、メッセージ型を選ぶと名前付きJSONを確認できます。型付きの結果と生のフィールド表示を並べ、値の出所を見失いません。
初期値はhexです。空白、コロン、0x接頭辞を許容します。Base64のデータは切り替えてください。短い文字列は両形式として成立することがあります。
wire型0のvarintはunsigned、signed、ZigZag、boolなどの候補を持ちます。wire型2も文字列と子メッセージを区別できません。宣言型は.protoで確認します。
自動デコードは入力後350ミリ秒待ちます。オフならCtrl/Cmd + Enterで実行できます。変更直後の結果は古くなり、コピーとダウンロードは止まります。
Protobufデコーダーはvarint、fixed64、長さ付き、fixed32を読みます。途中で切れた値や旧式groupはその位置でエラーにし、残りを黙って飛ばしません。
varintデコードと十進数からの逆変換を一つのページで扱います。BigIntでuint64とZigZag sint64を計算し、JavaScriptのNumberに由来する精度落ちを避けます。
自己完結した.protoがあれば、複数のメッセージから対象を選び、繰り返しや入れ子を型付きで表示できます。スキーマが失敗しても生のwire結果は残ります。
Protobufデコーダーが保存するhexは入力バイトの表記を整えたものです。推測した型から再符号化しないため、パケットと比較できます。
はい。フィールド番号、wire型、位置と元の値は読めます。ただし元の名前と正確な型には一致する.protoが必要です。
タグに含まれる低い3ビットが値の保存方式を示します。これだけではstringやbytesなどの宣言型までは決まりません。
データがhexならHex、Base64文字列ならBase64を選びます。形式は自動判定しないので、元の保存形式を確認してください。
同じビット列がuint64やZigZag sint64などに読めるためです。スキーマの宣言を見るまでは候補を併記します。
いいえ。デコードも任意の.proto解析もブラウザー内で行い、ペイロードをサーバーへ送信しません。
対応すべき定義で問題がありましたか?
Protobufデコーダーで得たオフセットと元のhexを手掛かりにし、必要なら.protoの宣言と照合して解釈を確定してください。