happytails.ai
Български

Проверка на съвместимостта на Protobuf

Сравнете две версии на .proto файл и открийте промените, които нарушават съвместимостта на вече записани двоични или JSON съобщения. Премахнатите номера, промените на типове, преименуваните полета и промените на изброими типове се обясняват поотделно.

Приема два файла .proto с най-много 1 000 000 знака всеки, с до 200 000 токена, 2 000 съобщения и изброими типа, 10 000 полета на съобщение и 32 нива на вложени съобщения. Сравнението работи в браузъра в отделна фонова задача. Могат да се изтеглят JSON отчет и CSV списък с констатации. Версията, с която са записани съществуващите данни. Поставете променения файл в Нова схема. До 1 000 000 знака. Прегледайте настройките преди изпълнение.

Вашият резултат

Съобщете за проблем или споделете идея.

Проверка на съвместимостта на Protobuf
  1. Поставете стария файл .proto в основното поле.
  2. Поставете новата версия в полето Нова схема.
  3. Изпълнете проверката и прегледайте констатациите, започвайки от най-сериозните.
  4. Изтеглете JSON отчета или CSV списъка.

Какво да очаквате

Приема два файла .proto с най-много 1 000 000 знака всеки, с до 200 000 токена, 2 000 съобщения и изброими типа, 10 000 полета на съобщение и 32 нива на вложени съобщения. Сравнението работи в браузъра в отделна фонова задача. Могат да се изтеглят JSON отчет и CSV списък с констатации.

Степени на сериозност

Несъвместима промяна означава, че старите и новите програми може да прочетат грешно двоични съобщения: премахнато поле без запазен номер, повторно използван номер от запазен диапазон, тип с различно двоично кодиране, промяна между единично и повтарящо се поле, премахнато съобщение или изброим тип или преномерирана изброима стойност. Несъвместимост с JSON означава, че двоичните данни още работят, но JSON или текстовият формат се променя, например при преименуване на поле или изброима стойност. Предупрежденията обхващат двоично съвместими промени, които може да отрежат или преинтерпретират стойности, например от int32 към int64 или премествания в oneof и извън него.

Как се извършва сравнението

Съобщенията и изброимите типове се съпоставят по име без пакета, а полетата по номер, съгласно правилата за обновяване на тип съобщение в езиковото ръководство на protobuf. Сравняват се и съобщенията и изброимите типове, вложени в други съобщения.

Какво не се поддържа

Анализаторът чете proto2 и proto3 файлове със съобщения, изброими типове, oneof, речници, вложени типове, запазени номера и имена и опции на полета. Импортите се посочват, но целевите им файлове не се зареждат, така че типовете от други файлове се сравняват само по име. Editions, групите и разширенията се отхвърлят. Услугите се пропускат.

Полезни следващи стъпки