מקודד/מפענח CBOR / MessagePack
קלט JSON
פלט Hex
פרטים טכניים
כיצד פועל ממיר CBOR ו-MessagePack
מה הכלי עושה
כלי זה מקודד נתוני JSON לפורמטים הבינריים CBOR (Concise Binary Object Representation) או MessagePack, ומפענח מטענים בינריים בחזרה ל-JSON קריא לאדם. הוא מציג את בתים ההקסדצימליים הגולמיים לצד המבנה המפוענח, מה שמקל על בדיקת קידודים בינריים קומפקטיים המשמשים בסביבות מוגבלות. שתי פעולות הקידוד תומכות באובייקטים מקוננים, מערכים וסוגי JSON סטנדרטיים.
מקרי שימוש נפוצים למפתחים
מפתחי IoT משתמשים בכלי זה כדי לבדוק מטעני CBOR מהודעות CoAP או אסימונים חתומים ב-COSE בלי לכתוב קוד דה-סריאליזציה. מהנדסי Backend מאתרים תקלות במסגרת WebSocket המקודדת ב-MessagePack, במאגרי פרוטוקול של Redis או במטעני RPC על ידי הדבקת דמפי hex וצפייה ב-JSON המפוענח. הוא שימושי גם להשוואת גדלי מטענים בין JSON, CBOR ו-MessagePack כדי לבחור את פורמט התעבורה היעיל ביותר עבור מערכות שמוגבלות ברוחב פס.
פורמטי נתונים, טיפוסים או וריאנטים
CBOR (RFC 8949) הוא פורמט בינרי המתאר את עצמו, שנועד לקוד קטן ולגודל הודעה קטן, ומאומץ באופן נרחב בתקני IoT כמו LwM2M ו-FIDO2/WebAuthn. MessagePack הוא סריאליזציה בינרית דומה שמטרתה להיות קומפקטית ככל האפשר תוך שמירה על היעדר סכימה, ונפוצה בשימוש ב-Redis, Fluentd ובמסגרות RPC רבות. שני הפורמטים קומפקטיים יותר מ-JSON אך מקריבים קריאות אנושית לטובת יעילות.
מלכודות נפוצות ומקרי קצה
CBOR תומך בסוגי נתונים ש-JSON אינו יכול לייצג באופן טבעי, כגון מחרוזות בתים, תגיות ומכלים באורך לא מוגדר — העברה הלוך ושוב שלהם דרך JSON תאבד מידע על סוגים. MessagePack מבחין בין בתים גולמיים לבין מחרוזות UTF-8, ש-JSON מאחד לסוג מחרוזת יחיד. דיוק של מספרים שלמים יכול להשתנות: שני הפורמטים תומכים במספרים שלמים באורך שרירותי, אך פענוח ל-JavaScript עלול לאבד דיוק מעבר ל-Number.MAX_SAFE_INTEGER.
מתי להשתמש בכלי הזה לעומת קוד
השתמשו בכלי הדפדפן הזה לבדיקה אד-הוק של מטענים בינריים שנלכדו מתעבורת רשת, לניפוי שגיאות בהודעות של התקני IoT, או להשוואה מהירה של גדלי קידוד. עבור סריאליזציה בסביבת ייצור בקוד האפליקציה, השתמשו בספריות ייעודיות כמו cbor2 (Python), cbor-x (Node.js) או msgpack עבור השפה שלכם, שמטפלות בזרימה, באימות סכימה ובמיפוי סוגים נכון — דברים שכלי דפדפן אינו יכול לספק.