Перевірка сумісності protobuf
Порівняйте дві версії файлу .proto та знайдіть зміни, через які повідомлення, вже записані у двійковому форматі чи JSON, можуть читатися неправильно. Пояснюються вилучені номери, зміни типів, перейменовані поля та зміни переліків.
Приймає два файли .proto розміром до 1 000 000 символів кожен, не більш як 200 000 токенів, 2 000 повідомлень і переліків, 10 000 полів у повідомленні та 32 рівні вкладених повідомлень. Порівняння виконується у фоновому процесі браузера. Можна завантажити звіт JSON і перелік результатів CSV. Версія, у якій записано наявні дані. Помістіть змінений файл у поле New schema. До 1 000 000 символів. Перевірте налаштування перед запуском.
Ваш результат
Перевірка сумісності protobuf
- Вставте старий файл .proto в основне поле.
- Вставте нову версію в поле New schema.
- Запустіть перевірку й перегляньте результати, починаючи з найсерйозніших.
- Завантажте звіт 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, групи й розширення відхиляються. Сервіси пропускаються.