happytails.ai
עברית

בודק תאימות protobuf

השוו בין שתי גרסאות של קובץ .proto ואתרו שינויים ששוברים הודעות שכבר נכתבו ב-wire או כ-JSON. כל שינוי במספרים, בסוגים, בשמות שדות וב-enums מוסבר בנפרד.

מקבל שני קובצי .proto של עד 1,000,000 תווים כל אחד, עם עד 200,000 אסימונים, 2,000 הודעות ו-enums, 10,000 שדות להודעה ו-32 רמות של הודעות מקוננות. ההשוואה פועלת בעובד רקע בדפדפן. קובצי ההורדה הם דוח JSON ורשימת ממצאים ב-CSV. הגרסה שבה נכתבו הנתונים הקיימים. שימו את הקובץ שהשתנה ב-New schema. עד 1,000,000 תווים. בדקו את ההגדרות לפני ההרצה.

התוצאה שלכם

דווחו על בעיה או שתפו רעיון.

בודק תאימות protobuf
  1. הדביקו את קובץ ה-.proto הישן בתיבה הראשית.
  2. הדביקו את הגרסה החדשה בשדה New schema.
  3. הריצו את הבדיקה ועיינו בממצאים לפי חומרה, מהחמור ביותר.
  4. הורידו את דוח JSON או את רשימת ה-CSV.

מה צפוי לקרות

מקבל שני קובצי .proto של עד 1,000,000 תווים כל אחד, עם עד 200,000 אסימונים, 2,000 הודעות ו-enums, 10,000 שדות להודעה ו-32 רמות של הודעות מקוננות. ההשוואה פועלת בעובד רקע בדפדפן. קובצי ההורדה הם דוח JSON ורשימת ממצאים ב-CSV.

דרגות חומרה

שינויים שוברים פירושם שתוכניות ישנות וחדשות עלולות לקרוא הודעות בינאריות באופן שגוי: למשל שדה שהוסר בלי לשמור את מספרו, מספר שנעשה בו שימוש חוזר מתוך טווח שמור, סוג עם קידוד wire שונה, שינוי בין שדה יחיד לחוזר, הודעה או enum שהוסרו, או מספר ערך enum ששונה. שינוי JSON שובר פירושו שהנתונים הבינאריים עדיין עובדים אך פורמט JSON או הטקסט השתנה, למשל שינוי שם של שדה או ערך enum. אזהרות כוללות שינויים שעובדים ב-wire אך עלולים לחתוך או לפרש ערכים מחדש, כגון int32 ל-int64, או העברת שדה אל oneof וממנו.

איך מתבצעת ההשוואה

הודעות ו-enums מותאמים לפי השם ללא package, ושדות לפי מספרם, בהתאם לכללי מדריך שפת protobuf לעדכון סוג הודעה. משווים גם הודעות ו-enums המקוננים בתוך הודעות אחרות.

מה לא נתמך

המנתח קורא קובצי proto2 ו-proto3 עם הודעות, enums, oneof, maps, סוגים מקוננים, מספרים ושמות שמורים ואפשרויות שדות. Imports מוצגים אך אינם נפתרים, ולכן משווים סוגים מקבצים אחרים לפי שם בלבד. Editions, groups ו-extensions נדחים. מדלגים על Services.

מה אפשר לעשות עכשיו