CBOR圢åŒæšæºã¯ã Carsten BormannãšPaul Hoffmanã«ãã£ãŠäœæãããæ°ããRFC 7049ã§2013幎10æã«IETFã«ãã£ãŠå ¬åŒã«çºè¡šãããŸããã æåã®èè ã®ååãèŠããšã圢åŒã®ååã®ç¥èªã®èµ·æºã®å¥ã®çç±ãæšæž¬ã§ããŸãããããã¯åãªãå¶ç¶ãããããŸããã CBOR圢åŒã¯ãMIMEã¿ã€ãapplication / cborãåãåããŸããã
çŸæç¹ã§ã¯ãããããæ§é åããŒã¿ãè¡šçŸããããã®ããããçš®é¡ã®ãã€ããªåœ¢åŒãæ°çŸçš®é¡ããããã®äžéšã¯æšæºåããã人æ°ããããåºã䜿çšãããŠããŸãïŒããšãã°ãASN.1ã®BERããã³DERãMessagePackããã³BSONïŒã æ¢åã®æšæºã¯ãã¹ãŠãã®ã¿ã¹ã¯ã解決ããCBORãäŸå€ã§ã¯ãããŸããã ãã®ãã©ãŒãããã«ã¯7ã€ã®éèŠãªèŠä»¶ãæ瀺ãããŸããããæ¢åã®ãã©ãŒãããã¯ã©ããããããå®å šã«æºããããšãã§ããªãã£ããããæ°ãããã©ãŒããããäœæãããŸããïŒã¯ããããã¯ç»åãé Œã¿ãŸã ïŒ
æ°ãããã€ããªåœ¢åŒã®èŠä»¶
- ã€ã³ã¿ãŒãããã§äººæ°ã®ããã»ãšãã©ã®ããŒã¿åæšæºã®æ確ãªã³ãŒãã£ã³ã°ã
ãã®åœ¢åŒã¯ããã€ããªè¡šçŸã䜿çšããŠåºæ¬çãªããŒã¿åãšæ§é ããšã³ã³ãŒãã§ããå¿ èŠããããŸãã åæã«ã絶察ã«ãã¹ãŠã®ããŒã¿åã«å¯ŸããŠäžæã®ã³ãŒãã£ã³ã°ãè¡ãå¿ èŠã¯ãããŸãããããšãã°ãæ°å7ã¯æååãšããŠãå šäœãšããŠãè¡šçŸã§ããŸãã - ãšã³ã³ãŒã/ãã³ãŒãã®ã³ã³ãã¯ããªå®è£
ãããã«ãããããã»ããµã®æ©èœãšå©çšå¯èœãªã¡ã¢ãªãµã€ãºãå¿
èŠãšããªãå®è£
ãäœæã§ããŸãã
ãã®åœ¢åŒã§ã¯ãã銎æã¿ã®åœ¢åŒã®æ©æ¢°å®è£ ã䜿çšããå¿ èŠããããŸãïŒããšãã°ãæŽæ°ãŸãã¯æµ®åå°æ°ç¹æ°-IEEE 754ïŒ - 説æã¹ããŒã ã®æ¬ åŠã
ãŸããJSON圢åŒã¯æ瀺ãããããŒã¿ïŒãªããžã§ã¯ããé åãæââååãªã©ïŒãèªå·±èšè¿°ããŸãã èšè¿°ã¹ããŒã ããªããããã·ã³ãã«ã§æ±çšçãªãã³ãŒããŒãäœæã§ããŸãã - ããŒã¿ã®ã·ãªã¢ã«åã¯å¯èœãªéãã³ã³ãã¯ãã«ããå¿
èŠããããŸãããïŒdeïŒãšã³ã³ãŒããŒã®äœæãç°¡åã«ãªããšããç ç²ã¯ãããŸããã
ãšã³ã³ãŒããããããŒã¿ã®ããªã¥ãŒã ã®äžã®ããŒã«ã€ããŠã¯ãJSON圢åŒã®ãã¬ãŒã³ããŒã·ã§ã³ããªã¥ãŒã ã䜿çšãããŸãã - ãã®åœ¢åŒã¯ããªãœãŒã¹ãéãããŠããã¢ããªã±ãŒã·ã§ã³ãšå€§éã®ããŒã¿ãæ±ãã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã«çããé©çšã§ããã¯ãã§ãã
ããã¯ãããŒã¿ããšã³ã³ãŒãããã³ãã³ãŒããããšãã«ãå®è£ ãCPUã«å¯ŸããŠåæ§ã«ç¯çŽããå¿ èŠãããããšãæå³ããŸãã - JSONãšã®éã§ããŒã¿ãå€æããã«ã¯ã圢åŒãJSONã®ãã¹ãŠã®æ¢åã®ã¿ã€ãããµããŒãããå¿ èŠããããŸãã
- 圢åŒã¯æ¡åŒµå¯èœã§ããå¿
èŠããããé«åºŠãªåœ¢åŒã¯ä»¥åã®ããŒãžã§ã³ã®ãã³ãŒããŒã§æ£åžžã«ãã³ãŒããããŠããå¿
èŠããããŸãã
ãã®ãã©ãŒãããã¯äœå幎ã䜿çšãããåæã«äžäœäºææ§ãç¶æããããããã©ãŒãããæšæºã®å°æ¥ã®ããŒãžã§ã³ã¯ã以åã®ããŒãžã§ã³ã®ãã³ãŒããŒã§éåžžåŠçã§ãããšæ³å®ãããŠããŸãã ãã®ãããæªç¥ã®æ¡åŒµåãèŠã€ãã£ãå Žåã§ããã¡ãã»ãŒãžããã³ãŒãã§ããŸãã
èŠä»¶ãããããããã«ãCBORã¯JSONããŒã¿ã¢ãã«ã«çŠç¹ãåœãŠãŠããŸãããããã«éå®ããããäžè¬çãªããŒã¿åãè¿œå ããå°æ¥çã«ãã©ãŒããããæ¡åŒµã§ããŸãã
CBORä»æ§
圢åŒãã¿ã¹ã¯ãã©ã®çšåºŠããŸã解決ããããç解ãããããä»ã®åœ¢åŒãšæ¯èŒã§ããããã«ããããã«ãCBOR圢åŒã§ããŒã¿ããšã³ã³ãŒãããããã»ã¹ãæ€èšããŠãã ããã
åããŒã¿é ç®ã¯ãããŒã¿ã®äž»èŠãªã¿ã€ãã®èª¬æãšè¿œå æ å ±ãå«ããã€ãã§å§ãŸããŸãã ã¡ã€ã³ã¿ã€ãã¯3ã€ã®æäžäœããããå æãã0ã7ã®å€ãæã€ããšãã§ããŸããè¿œå æ å ±ã¯0ã31ã®å€ãåãåãããšãã§ããŸãã
å³ãããããããã«ãè¿œå æ å ±ã®å€ã§3ã€ã®æ¡ä»¶ç¯å²ã匷調衚瀺ãããŠããŸãã
- å€ã0ã23ã®å Žåããã®å€ã¯æŽæ°ãšããŠçŽæ¥äœ¿çšãããŸãã ããšãã°ãã¡ã€ã³ã¿ã€ããæŽæ°ã®å Žåãè¿œå æ å ±ã®å€ã¯èŠçŽ ã®å€ã§ãã ã¡ã€ã³ã¿ã€ããæååã®å Žåããã®æ°å€ã¯æååã®é·ãã瀺ããŸãã
- å€ã24ã27ã®å ŽåãåŸç¶ã®ãã€ãã«ã¯å¯å€é·ã®æŽæ°ãå«ãŸãããããã1ãã€ãã2ãã€ãã4ãã€ããããã³8ãã€ãã®éè² æŽæ°ã§ãã ããšãã°ãã¡ã€ã³ã¿ã€ããæŽæ°ã®å Žåã次ã®ãã€ãã«ã¯ãã®å€ãå«ãŸããæååã®å Žåã«ã¯-ãã®é·ããå«ãŸããŸãã
- å€31ã¯ç¹å¥ã§ãããèŠçŽ ã®é·ããå®çŸ©ãããŠããªãããšã瀺ããŸãã ããšãã°ãæååã®å Žåãããã¯æååã®é·ããäžæã§ããããšãæå³ããŸãã
å€28ã30ã¯ãæšæºã®å°æ¥ã®ããŒãžã§ã³çšã«äºçŽãããŠããŸãã
äŸã§æ¢ã«ç€ºããããã«ãã¡ã€ã³ã¿ã€ãã®å€ã«å¿ããŠãè¿œå æ å ±ã®æå³ã¯ç°ãªãæå³ãåããŸãã åºæ¬çãªããŒã¿åãæ€èšããŠãã ããã
ã¿ã€ã0ïŒéè² æŽæ°
è¿œå æ å ±ã«ã¯æ°å€ã®å€ãå«ãŸããŸãïŒ24æªæºã®å ŽåïŒããã®ä»ã®å Žåãè¿œå æ å ±ã«ç¶ãæŽæ°ã®ãµã€ãºã瀺ãããŸãã 24ã
uint8_t
ã25ã
uint16_t
ã26ã
uint32_t
ã27ã
uint64_t
ã
ããšãã°ãæ°å€16ã¯
0x10
ã§ãšã³ã³ãŒããããæ°å€500ã¯3ãã€ãã®ã·ãŒã±ã³ã¹
0x01f4
ïŒ500ïŒã§ãšã³ã³ãŒããããŸã
ã¿ã€ã1ïŒè² ã®æŽæ°
å€ã¯ã¿ã€ã0ãšã®é¡æšã«ãã£ãŠãšã³ã³ãŒããããŸãããå¯äžã®éãã¯çµ¶å¯Ÿå€ãã1ãåŒãããšã§ãã ããšãã°ã-16ã¯
0x2F
ã§ãšã³ã³ãŒããããæ°å€-500ã¯
0x01f3
ïŒ499ïŒã§ã
ã¿ã€ã2ïŒãã€ãæåå
ãã€ãæååã®å Žåãè¿œå æ å ±ã¯æååã®é·ãããã€ãåäœã§ãšã³ã³ãŒãããŸãã ããšãã°ã16ãã€ãã®ãã€ãæååã®å Žåã
0x50
ïŒã¿ã€ã2ãå€16ïŒã§ãšã³ã³ãŒãããããã®åŸã«ãã€ãæååãå«ã16ãã€ããç¶ããŸãã ãŸãã500ãã€ãã®æååã®å Žåã3ãã€ãã®ããããŒïŒ
0x59
ïŒã¿ã€ã2ãå€25ïŒã
0x01f4
ïŒ500ïŒããã®åŸã«ç¶ã500ãã€ãã®æååããŒã¿ã
ã¿ã€ã3ïŒããã¹ãæåå
ããã¹ãæååã¯ãUTF-8ã§ãšã³ã³ãŒããããUnicodeæååã§ãã ãã€ãæååãšåæ§ã«ãè¿œå æ å ±ã¯æååã®é·ãããã€ãåäœã§ãšã³ã³ãŒãããŸãã JSON圢åŒãšã¯ç°ãªããããã¹ãæååã«ã¯
\n
ã
\u000a
ãªã©ã®åœ¢åŒã®ã·ã³ã¯è»¢éæåããšã¹ã±ãŒãããå¿ èŠã¯ãããŸããã
ã¿ã€ã4ïŒèŠçŽ ã®é å
æååã®ã¿ã€ããšåæ§ã«ãè¿œå æ å ±ã¯é åã®é·ãã瀺ããŸããããã€ãåäœã§ã¯ãªãèŠçŽ æ°ã§ç€ºããŸãã é åå ã®èŠçŽ ã¯åãåã§ããå¿ èŠã¯ãªããæååãæ°å€ãªã©ã®ã»ããã«ããããšãã§ããŸãã ããããŒã®åŸãé åã®èŠçŽ ãããã«ç¶ããŸãã ããšãã°ãé å
[0,"A"]
ã¯æ¬¡ã®ããã«ãšã³ã³ãŒããããŸãã
82 - 2- , 00 - 0, 61 - 1 , 41 - "A"
ã¿ã€ã5ïŒãã¢ãããïŒé£æ³é åãããã·ã¥ãèŸæžãJSONãªããžã§ã¯ã...ïŒ
ãã®ã¿ã€ãã¯ããããŒã-ãå€ãã®ãã¢ã§æ§æãããã«ãŒããå®çŸ©ããŸãã è¿œå æ å ±ã«ããããã®ãããªãã¢ã®æ°ã決ãŸããŸãã ããšãã°ã9ãã¢ã®ã«ãŒãã¯
0xa9
ïŒã¿ã€ã5 +å€9ïŒãšããŠãšã³ã³ãŒãããããã®åŸã«9ãã¢ã®èŠçŽ ïŒæåã®ããŒãæåã®å€ã2çªç®ã®ããŒãªã©ïŒãç¶ããŸãã ããŒã«ã¯ããŸããŸãªã¿ã€ãããããŸãããååãšããŠããããèŠæ±ãããããšã¯ã»ãšãã©ãããŸããã
ã¿ã€ã6ïŒä»ã®åºæ¬ã¿ã€ãã®ã»ãã³ãã£ãã¯ã¿ã°ä»ã
ãã®ã¿ã€ãã¯ãæšæºãæ¡åŒµããããã®å¹ åºãå¯èœæ§ãéããŸãã è¿œå æ å ±ã¯ã0ã18446744073709551615ã®ã¿ã°ã®ç¯å²ãå®çŸ©ããæŽæ°ã¿ã°çªå·ãèšå®ããŸããã¿ã°ã¯ãåºæ¬ã¿ã€ãã®ç¹å®ã®è¡šçŸãåç §ãããµããŒããããããŒã¿ã¿ã€ããç¡å¶éã«æ¡åŒµã§ããŸãã
ããšãã°ãæšæºã§ã¯ãã¿ã°0ãRFC 3339ïŒRFC 4287ã§ä¿®æ£ãããïŒã§èª¬æãããŠãã圢åŒã§æ¥æããã¹ãæååãå®çŸ©ããããšãæ確ã«èŠå®ããŠããŸãã ããšãã°ãæå»
1970-01-01T00:00Z
ããšã³ã³ãŒããããšã
1970-01-01T00:00Z
ã«ãªããŸãã
0 - 0 71 - 17 31 39 37 30 2d 30 31 2d 30 31 54 30 30 3a 30 30 5a - 1970-01-01T00:00Z
ã¿ã°0ã®æå³ãåãããªããŠããã¿ã°ã®åŸã«åºæ¬ã¿ã€ã3ã®èŠçŽ ïŒããã¹ãæååïŒãç¶ããããããŒã¿ããã³ãŒãã§ããããšã«æ³šæããŠãã ããã
çŸæç¹ã§ã¯ãæšæºã«ãã£ãŠããã€ãã®ã¿ã°ãå®çŸ©ãããŠãããIANAã¯ã¿ã°ã®ãªã¹ãã®ã¡ã³ããã³ã¹ãè¡ã£ãŠããŸããçŸåšã®ååžã¯ããã§ç¢ºèªã§ããŸã
ã¿ã°55799ãåå¥ã«æ³šç®ãã䟡å€ããããŸããã€ãŸããCBOR圢åŒã®ããŒã¿ã¯ããã«é²ãã§ããŸãã å®éããã€ããŒããéãã§ããŸããããããšãã°ãããŒã¿ãCBOR圢åŒã§ãã¡ã€ã«ã«ä¿åããå Žåããã®ã¿ã°ã¯æåã«ã·ãŒã±ã³ã¹
0xd9d9f7
ã圢æããŸããããã¯ããã¡ã€ã«ã¿ã€ããå€æããããã®ããžãã¯å€ãšããŠãŠãŒãã£ãªãã£ã«ãã£ãŠäœ¿çšã§ããŸãã ããã«ããã®ã·ãŒã±ã³ã¹ã¯æ¢åã®Unicodeãšã³ã³ãŒãã£ã³ã°ã«ã¯èŠãããªããããCBORãšããã¹ãããŒã¿ããã°ããåºå¥ã§ããŸãã
ã¿ã€ã7ïŒæµ®åå°æ°ç¹æ°ããã³ãã®ä»ã®åçŽãªããŒã¿å
ãã®ã¿ã€ãã§ã¯ãåçŽãªå€ãšæµ®åå°æ°ç¹æ°ãèšè¿°ããããšãã§ããŸãã è¿œå æ å ±ã«ã¯ã次ã®æå³äžã®æå³ããããŸãã
- 0..23-åçŽãªå€ïŒ0ã23ã®ã³ãŒãïŒ
- 24-åçŽãªå€ïŒã³ãŒã24ã255ïŒ
- 25-IEEE 754å粟床浮åå°æ°ç¹æ°ïŒ16ãããïŒ
- 26-IEEE 754å粟床浮åå°æ°ç¹æ°ïŒ32ãããïŒ
- 27-IEEE 754å粟床浮åå°æ°ç¹æ°ïŒ64ãããïŒ
- 28-30-æªå®çŸ©
- 31-é·ããäžå®ã®èŠçŽ ã®åæ¢ã³ãŒããã¬ãŒã¯ïŒãã¬ãŒã¯ïŒ
ãã®èŠæ Œã¯ãåçŽãªå€ã®ããã€ãã®ã³ãŒããå®çŸ©ããŠããŸãã
- 20-åœ
- 21-ç
- 22-ãã«
- 23-æªå®çŸ©
ä»ã®åçŽãªå€ãIANAã«ãã£ãŠç»é²ãããŠããŸã ãçŸåšãåçŽãªå€ã®ãªã¹ãã¯ããã§å ¥æã§ããŸã ã
äžéšã®åºæ¬åã®æªå®çŸ©ã®èŠçŽ ã®é·ã
4ã€ã®åºæ¬ã¿ã€ãïŒé åããããããã€ããããã³ããã¹ãæååã«ã¯ãèŠçŽ ã®æªå®çŸ©ã®å€ïŒè¿œå æ å ±ã§31ã®å€ã§æå®ãããïŒãå«ããããšãã§ããŸãã ããã«ãããçªå·ããŸã äžæãªèŠçŽ ã®ãšã³ã³ãŒããéå§ã§ããŸãã ããã¯ãããŒã¿ãã¹ããªãŒãã³ã°ããã¢ããªã±ãŒã·ã§ã³ã§å¿ èŠã«ãªãå ŽåããããŸãã
é åãšãããã®å ŽåãèŠçŽ ã¯æ¬¡ã ã«ç¶ããå²ã蟌ã¿åæ¢ã³ãŒãã䜿çšããŠå®äºã瀺ããŸãã é åãŸãã¯ãããã®æåŸã®èŠçŽ ã®çŽåŸã«ãã¿ã€ã7ã®èŠçŽ ã«è¿œå æ å ±31ãç¶ããŸã-ããã¯ãã€ã
0xFF
ã§ãã
æååã®å Žåãå¥ã®ã¢ãããŒãã䜿çšãããŸãã æååã¯æéé·ã®éšåã§éä¿¡ãããåŸã§1è¡ã«çµåãããŸãïŒããã¯ãã³ãŒããŒãšæçµã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã§å®è¡ã§ããŸãïŒã è¡ã®éšåã®ã·ãŒã±ã³ã¹ã®å®äºã®ã€ã³ãžã±ãŒã¿ã¯ãå²ã蟌ã¿
0xFF
ã§ãã ããã¹ãæååã®å Žåããã©ã°ã¡ã³ãã転éãããšããUnicodeæåã³ãŒãã·ãŒã±ã³ã¹å ã§è¡åå²ãçºçããªãããšãéèŠã§ãã æååã®ãã¹ãŠã®éšåã«ã¯ãæå¹ãªUnicodeæåã·ãŒã±ã³ã¹ãå«ãŸããŠããå¿ èŠããããŸãã
äŸïŒ
5F -- 44 -- 4 aabbccdd -- 43 -- 3 eeff99 -- FF -- "break"
ãã³ãŒãåŸããã¹ãŠã®ãã©ã°ã¡ã³ãã¯1è¡ã«çµåãããŸãïŒ
aabbccddeeff99
æ£èŠåœ¢åŒã®å®è£
CBORæšæºã§ã¯ãåãå ¥åã§ç°ãªãå®è£ ãåãåºåãçæã§ããããã«ããããã€ãã®ã«ãŒã«ãå®çŸ©ããŠããŸãã ãã ããã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®èŠä»¶ãããå Žåãæšæºããã®éžè±ãèš±å¯ããããšã¯èš±å¯ãããŸããããããäœæãããããã¥ã¡ã³ãã®æå¹æ§ã«éåžžéåããªãå Žåã¯èš±å¯ãããŸãã
- ãšã³ã³ãŒããããããŒã¿ã«æãç°¡æœãªè¡šçŸã䜿çšããŸãã ããšãã°ãæŽæ°500ããšã³ã³ãŒããããŠããå Žåãããšãã°
uint16_t
ã§ã¯ãªããuint16_t
ã®è¡šçŸãuint16_t
å¿ èŠããããŸãã æ°å€0.0
ãšã³ã³ãŒãããå Žå0.0
ãšã³ã³ãŒãã¯æŽæ°åã«å€æããå¿ èŠããããŸããããã«ãããããç°¡æœãªè¡šçŸãåŸãããŸãã æµ®åå°æ°ç¹æ°ãæå¹ãããã倱ãããšãªãå粟床ã§è¡šçŸã§ããå Žåããšã³ã³ãŒãã¯å粟床ãªã©ã䜿çšããªãã§ãã ããã - é£æ³é åã®ããŒã¯æé ã§ãœãŒãããå¿ èŠããããŸãïŒãã€ããœãŒããçãããŒãæåã«ãªããŸãïŒ
- å¯èœã§ããã°ãäžå®é·ã®èŠçŽ ã¯åºå®é·ã«çœ®ãæããããŸãã
- æ£èŠã®å®è£ ã§ã¯ã¿ã°ã䜿çšãã¹ãã§ã¯ãããŸããããã¿ã°ã䜿çšããŠããŒã¿ãåŠçããå Žåã¯ãã¿ã°ãä¿åããå¿ èŠããããŸã
ãšã©ãŒåŠç
CBORèŠæ Œã§ã¯ã圢åŒã®ãšã©ãŒãåŠçããããã®ç°ãªãã¢ãããŒããèš±å¯ãããŠããŸãã ãšã©ãŒã¯ã圢åŒèªäœïŒè¿œå æ å ±ã®äžæãªå€ãåçŽãªå€ãé åèŠçŽ ã®äžæ£ãªæ°ãªã©ïŒãšå€ïŒããšãã°ãããã¹ãæååã®ç¡å¹ãªUTF-8ã³ãŒããŸãã¯é£æ³é åã®éè€ããŒïŒã®äž¡æ¹ã«é¢é£ä»ããããšãã§ããŸãã ïŒ
ãã³ãŒãã¯ãäžæ£ãªããŒã¿ã«å¯ŸããŠèŠåãçºè¡ããããå€æãè¡ã£ãŠãšã©ãŒãä¿®æ£ãããããšã©ãŒãç¡èŠããããæåã®ãšã©ãŒãæ€åºããããšãã«åŠçãçŽã¡ã«åæ¢ãããã§ããŸãã èŠæ Œã§ã¯ãããŒã¿ãä¿¡é Œã§ããªããœãŒã¹ããã®ãã®ã§ããå Žåã«ãå³å¯ïŒ strict ïŒã¢ãŒãã®äœ¿çšãææ¡ããŠããŸãããã®å Žåããã³ãŒãã¯ãæ€èšŒã«åæ Œããªãã£ãããŸãã¯ç°ãªããã³ãŒãã«ãã£ãŠç°ãªã解éãå¯èœãªãã¹ãŠã®ããŒã¿ãæåŠããå¿ èŠããããŸãã ã«ãŒã¹ã¢ãŒãã¯ãä¿¡é Œã§ãããœãŒã¹ããã®ããŒã¿ãšåŠçé床ãããéèŠãªå Žåã«äœ¿çšãããŸãïŒããšãã°ãUTF-8è¡ã®æå¹æ§ã確èªããªãã§ãã ããïŒã
ä»ã®ãã€ããªåœ¢åŒãšã®æ¯èŒ
æšæºã®ããã¹ãã¯ãé åãããŸããŸãªæ¢åã®åœ¢åŒã§ãšã³ã³ãŒããããæ¹æ³ã«é¢ããæ¯èŒè¡šãæäŸããŸãã æåã®é åã¯ããã¹ããããé åãæã€2ã€ã®èŠçŽ ã§æ§æãããŸãã äžå®é·ã®2çªç®ã®é åïŒããã«ã¯æ¡ä»¶ã·ã³ãã«
_
䜿çšãããŸãïŒã«ã¯ãïŒæéé·ã®ïŒãã¹ããããé åãå«ãŸããŸãã
+---------------+-------------------------+-------------------------+ | Format | [1, [2, 3]] | [_ 1, [2, 3]] | +---------------+-------------------------+-------------------------+ | RFC 713 | c2 05 81 c2 02 82 83 | | | | | | | ASN.1 BER | 30 0b 02 01 01 30 06 02 | 30 80 02 01 01 30 06 02 | | | 01 02 02 01 03 | 01 02 02 01 03 00 00 | | | | | | MessagePack | 92 01 92 02 03 | | | | | | | BSON | 22 00 00 00 10 30 00 01 | | | | 00 00 00 04 31 00 13 00 | | | | 00 00 10 30 00 02 00 00 | | | | 00 10 31 00 03 00 00 00 | | | | 00 00 | | | | | | | UBJSON | 61 02 42 01 61 02 42 02 | 61 ff 42 01 61 02 42 02 | | | 42 03 | 42 03 45 | | | | | | CBOR | 82 01 82 02 03 | 9f 01 82 02 03 ff | +---------------+-------------------------+-------------------------+
ã芧ã®ãšãããMessagePackãšCBORã¯æãã³ã³ãã¯ããªè¡šçŸã§ãããBERãUBJSONãCBORã®ã¿ãç¡éã·ãŒã±ã³ã¹ããšã³ã³ãŒãããæ©èœãæã£ãŠããŸãã
æ¢åã®CBORå®è£
æšæºã®ãªãªãŒã¹çŽåŸã«ãããŸããŸãªããã°ã©ãã³ã°èšèªã§ã®ïŒdeïŒãšã³ã³ãŒããŒã®æåã®å®è£ ãç»å Žãå§ããŸããã ããšãã°ã C ã Perl ã Ruby ã Python ã Java ã Goãããã³ãã®ä»ã®å€ãïŒgithubãããã«èŠãŠãJavaScriptã®å®è£ ã¯ãŸã èŠã€ãããŸããã§ããã...ïŒ
ãããã®å®è£ ã®ãã¹ãŠãæšæºãå®å šã«ãµããŒãããŠããããã§ã¯ãªãããããããã£ãšå€ãã®å®è£ ãååšããããä»åŸç»å ŽããŸãã ããã«ãããæšæºã®äž»ãªç®æšãéæãããããšãå®å šã«ç¢ºèªã§ããŸããïŒdeïŒãšã³ã³ãŒããŒã®å®è£ ã¯ãããã»ã©è€éã§ã¯ãããŸããã ã€ã³ã¿ãã¥ãŒã§ããã«ãããã°ã©ããŒã¯ãã¹ãã¿ã¹ã¯ãšããŠç·©ãCBORãã³ãŒããŒãå®è£ ããããã«æ±ãå§ããã§ãããã
PSããã¹ãã«èª€ããã¿ã€ããã¹ããŸãã¯äžæ£ç¢ºãèŠã€ããå Žåãç§ã«ç¥ãããŠãã ãããç§ã¯ãããä¿®æ£ããŸãã