Явно выбрать формат байтов
По умолчанию используется Hex с пробелами, двоеточиями и префиксами 0x. Для Base64 переключите формат вручную: короткая строка может подходить сразу к обоим.
Разбор байтов протокола
Сначала изучите исходный wire-поток; самостоятельную схему .proto добавляйте только для имён и объявленных типов.
Байты и схема обрабатываются в браузере, без отправки.
Введите wire-сообщение или varint.
Декодер Protobuf нужен, когда в журнале остались только байты сообщения. Даже без файла .proto он позволяет увидеть номера полей, wire-типы и точные границы значений.
Формат передачи protobuf не хранит исходные имена полей. Участок с длиной может оказаться строкой, байтами, вложенным сообщением или packed-значениями. Возможные трактовки нельзя выдавать за тип из схемы.
Каждая интерпретация сверяется с исходными байтами.
Декодер Protobuf показывает для поля смещения от нуля, wire-тип и исходный hex. Если длина выходит за границу сообщения, ошибка указывает на проблемный байт.
Вставьте самостоятельный .proto и выберите тип сообщения. Именованный JSON появится рядом с исходными полями, чтобы можно было проверить происхождение каждого значения.
По умолчанию используется Hex с пробелами, двоеточиями и префиксами 0x. Для Base64 переключите формат вручную: короткая строка может подходить сразу к обоим.
Wire-тип 0 может означать unsigned, signed, ZigZag, bool или enum. Тип 2 подходит строке, bytes и вложенному сообщению. Только .proto определяет заявленный тип.
Автоматический разбор ждёт 350 мс. После отключения используйте Ctrl/Cmd + Enter. Любое изменение сразу блокирует копирование и скачивание прежнего результата.
Декодер Protobuf читает varint, fixed64, значения с длиной и fixed32. Оборванные данные и устаревшие group-теги вызывают ошибку с указанием позиции.
Режим varint декодирование читает uint64 и кодирует десятичное число обратно. Явный выбор ZigZag даёт sint64; BigInt защищает большие значения от округления Number.
Самостоятельный .proto позволяет выбрать корневой тип и читать повторяющиеся либо вложенные поля. При ошибке схемы исходный wire-разбор остаётся доступным.
Экспорт меняет только запись входных байтов на единый формат. Он не сериализует заново сообщение, тип которого лишь предполагался.
Да, если нужны структура, номера, wire-типы, смещения и сырые значения. Для исходных имён и точных типов требуется соответствующий .proto.
Нижние три бита тега задают способ хранения следующего значения. Они не определяют все типы на уровне приложения.
Выбирайте Hex для пар шестнадцатеричных цифр, Base64 для закодированной строки. Автоматического угадывания здесь нет.
Одни и те же биты читаются как uint64 или ZigZag sint64. Правильный смысл задаёт объявление в схеме.
Нет. Байты и необязательный .proto обрабатываются в браузере, без отправки содержимого на сервер.
Нашли определение, которое должно поддерживаться?
Декодер Protobuf помогает сверить смещения и исходный hex со схемой, прежде чем считать одно из возможных прочтений окончательным.