Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encoded binary is different from other library #10

Closed
sapics opened this issue Sep 2, 2015 · 9 comments
Closed

Encoded binary is different from other library #10

sapics opened this issue Sep 2, 2015 · 9 comments

Comments

@sapics
Copy link

sapics commented Sep 2, 2015

Thank you for great library!

Now, I have a trouble that a converted binary is different from other library.
I am unsure of msgpack, so, I could not know which result is right or my json data is wrong data.
I am sorry about my bad English...

Source json data

[["Layer",{"applyMatrix":true,"locked":true,"children":[["Raster",{"applyMatrix":false,"matrix":[1.616161616161616,0,0,1.616161616161616,400.00000000000006,248.42105263157896],"locked":true,"source":"/i/cs/21/11/fd7ca8286be2f256b3edd55a84f31565.png"}]]}],["Layer",{"applyMatrix":true,"children":[["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,82.49999999999999],"lockScalingY":true,"lockScalingXY":true,"content":"Company Name","fontId":"1472","textTitleTypeId":3,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":32.67836257309941,"font":"\"Open Sans\",\"serif\"","leading":39.214035087719296,"maxWidth":715.7894736842106}],["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,154.07894736842107],"lockScalingY":true,"lockScalingXY":true,"content":"Full Name","fontId":"1472","textTitleTypeId":2,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":53.47368421052631,"font":"\"Open Sans\",\"serif\"","leading":64.16842105263157,"maxWidth":715.7894736842106}],["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,196.18421052631578],"lockScalingY":true,"lockScalingXY":true,"content":"Job Title","fontId":"1472","textTitleTypeId":4,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":26.736842105263154,"font":"\"Open Sans\",\"serif\"","leading":32.084210526315786,"maxWidth":715.7894736842106}],["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,263.55263157894734],"lockScalingY":true,"lockScalingXY":true,"content":"Email","fontId":"1472","textTitleTypeId":5,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":23.766081871345026,"font":"\"Open Sans\",\"serif\"","leading":28.51929824561403,"maxWidth":715.7894736842106}],["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,301.4473684210526],"lockScalingY":true,"lockScalingXY":true,"content":"Phone","fontId":"1472","textTitleTypeId":6,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":23.766081871345026,"font":"\"Open Sans\",\"serif\"","leading":28.51929824561403,"maxWidth":715.7894736842106}],["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,339.34210526315786],"lockScalingY":true,"lockScalingXY":true,"content":"Address Lines","fontId":"1472","textTitleTypeId":21,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":23.766081871345026,"font":"\"Open Sans\",\"serif\"","leading":28.51929824561403,"maxWidth":715.7894736842106}],["MyText",{"applyMatrix":false,"matrix":[1,0,0,1,42.10526315789473,406.7105263157895],"lockScalingY":true,"lockScalingXY":true,"content":"Web","fontId":"1472","textTitleTypeId":10,"fontFamily":"\"Open Sans\",\"serif\"","fontSize":23.766081871345026,"font":"\"Open Sans\",\"serif\"","leading":28.51929824561403,"maxWidth":715.7894736842106}],["Path",{"applyMatrix":true,"segments":[[[719.925436,69.147025],[39,19],[-39,-19]],[[640.925436,58.147025],[19,-8],[-19,8]],[[591.925436,104.147025],[6,-12],[-6,12]],[[573.925436,142.147025],[9,-6],[-9,6]],[[546.925436,152.147025],[4,0],[-4,0]],[[442.925436,132.147025],[30,12],[-30,-12]],[[353.925436,151.147025],[17,-13],[-17,13]],[[305.925436,237.147025],[4,-21],[-4,21]],[[303.925436,341.147025],[-19,-25],[-1,1]],[[265.925436,364.147025],[48,3],[-48,-3]],[[212.925436,390.147025],[21,-14],[-21,14]],[[161.925436,414.147025],[8,-16],[-8,16]],[[189.925436,462.147025],[-41,-2],[41,2]],[[303.925436,416.147025],[-7,16],[7,-16]],[[337.925436,390.147025],[-11,-3],[11,3]],[[363.925436,410.147025],[-25,-8],[25,8]],[[396.925436,422.147025],[-15,1],[15,-1]],[[424.925436,422.147025],[-7,8],[7,-8]],[[431.925436,435.147025],[-6,-6],[6,6]],[[492.925436,447.147025],[-41,5],[41,-5]],[[564.925436,436.147025],[0,2],[0,-2]],[[547.925436,425.147025],[18,-1],[-18,1]],[[512.925436,426.147025],[20,5],[-20,-5]],[[476.925436,409.147025],[0,18],[0,-18]],[[474.925436,379.147025],[21,10],[-21,-10]],[476.925436,340.147025],[[481.925436,312.147025],[-12,15],[12,-15]],[[518.925436,310.147025],[1,-13],[-1,13]],[[507.925436,345.147025],[0,-14],[0,14]],[[509.925436,375.147025],[8,-19],[-8,19]],[[500.925436,413.147025],[-2,-7],[2,7]],[[507.925436,434.147025],[-14,2],[14,-2]],[[526.925436,416.147025],[4,21],[-4,-21]],[[586.925436,313.147025],[-22,14],[22,-14]],[[644.925436,240.147025],[-9,17],[9,-17]],[[694.925436,160.147025],[-7,18],[7,-18]],[[701.925436,140.147025],[5,9],[22,-5]],[[734.925436,130.147025],[-4,9],[4,-9]],[[746.925436,107.147025],[5,9],[-5,-9]],[[727.925436,92.147025],[5,12],[-5,-12]],[719.925436,70.147025],[719.925436,70.147025]],"fillColor":[1,1,1],"strokeWidth":0.8421052631578947}]]}]]

Converted binary from http://kawanet.github.io/msgpack-lite/

92 92 A5 4C 61 79 65 72 83 AB 61 70 70 6C 79 4D 61 74 72 69 78 C3 A6 6C 6F 63 6B 65 64 C3 A8 63 68 69 6C 64 72 65 6E 91 92 A6 52 61 73 74 65 72 84 AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 CB 3F F9 DB CC 48 67 6F 30 00 00 CB 3F F9 DB CC 48 67 6F 30 CB 40 79 00 00 00 00 00 01 CB 40 6F 0D 79 43 5E 50 D8 A6 6C 6F 63 6B 65 64 C3 A6 73 6F 75 72 63 65 DA 00 30 2F 69 2F 63 73 2F 32 31 2F 31 31 2F 66 64 37 63 61 38 32 38 36 62 65 32 66 32 35 36 62 33 65 64 64 35 35 61 38 34 66 33 31 35 36 35 2E 70 6E 67 92 A5 4C 61 79 65 72 82 AB 61 70 70 6C 79 4D 61 74 72 69 78 C3 A8 63 68 69 6C 64 72 65 6E 98 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 54 9F FF FF FF FF FF AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 AC 43 6F 6D 70 61 6E 79 20 4E 61 6D 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 03 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 40 56 D4 95 B5 25 6D A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 43 9B 65 80 72 F9 B6 A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 63 42 86 BC A1 AF 29 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A9 46 75 6C 6C 20 4E 61 6D 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 02 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 4A BC A1 AF 28 6B C9 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 50 0A C7 69 18 40 AC A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 68 85 E5 0D 79 43 5E AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A9 4A 6F 62 20 54 69 74 6C 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 04 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 3A BC A1 AF 28 6B C9 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 40 0A C7 69 18 40 AC A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 70 78 D7 94 35 E5 0D AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A5 45 6D 61 69 6C A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 05 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 72 D7 28 6B CA 1A F2 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A5 50 68 6F 6E 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 06 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 75 35 79 43 5E 50 D7 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 AD 41 64 64 72 65 73 73 20 4C 69 6E 65 73 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 15 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 79 6B 5E 50 D7 94 36 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A3 57 65 62 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 0A AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A4 50 61 74 68 84 AB 61 70 70 6C 79 4D 61 74 72 69 78 C3 A8 73 65 67 6D 65 6E 74 73 DC 00 2A 93 92 CB 40 86 7F 67 4A FD 54 54 CB 40 51 49 68 DB 8B AC 71 92 27 13 92 D0 D9 ED 93 92 CB 40 84 07 67 4A FD 54 54 CB 40 4D 12 D1 B7 17 58 E2 92 13 F8 92 ED 08 93 92 CB 40 82 7F 67 4A FD 54 54 CB 40 5A 09 68 DB 8B AC 71 92 06 F4 92 FA 0C 93 92 CB 40 81 EF 67 4A FD 54 54 CB 40 61 C4 B4 6D C5 D6 39 92 09 FA 92 F7 06 93 92 CB 40 81 17 67 4A FD 54 54 CB 40 63 04 B4 6D C5 D6 39 92 04 00 92 FC 00 93 92 CB 40 7B AE CE 95 FA A8 A8 CB 40 60 84 B4 6D C5 D6 39 92 1E 0C 92 E2 F4 93 92 CB 40 76 1E CE 95 FA A8 A8 CB 40 62 E4 B4 6D C5 D6 39 92 11 F3 92 EF 0D 93 92 CB 40 73 1E CE 95 FA A8 A8 CB 40 6D A4 B4 6D C5 D6 39 92 04 EB 92 FC 15 93 92 CB 40 72 FE CE 95 FA A8 A8 CB 40 75 52 5A 36 E2 EB 1C 92 ED E7 92 FF 01 93 92 CB 40 70 9E CE 95 FA A8 A8 CB 40 76 C2 5A 36 E2 EB 1C 92 30 03 92 D0 D0 FD 93 92 CB 40 6A 9D 9D 2B F5 51 50 CB 40 78 62 5A 36 E2 EB 1C 92 15 F2 92 EB 0E 93 92 CB 40 64 3D 9D 2B F5 51 50 CB 40 79 E2 5A 36 E2 EB 1C 92 08 F0 92 F8 10 93 92 CB 40 67 BD 9D 2B F5 51 50 CB 40 7C E2 5A 36 E2 EB 1C 92 D0 D7 FE 92 29 02 93 92 CB 40 72 FE CE 95 FA A8 A8 CB 40 7A 02 5A 36 E2 EB 1C 92 F9 10 92 07 F0 93 92 CB 40 75 1E CE 95 FA A8 A8 CB 40 78 62 5A 36 E2 EB 1C 92 F5 FD 92 0B 03 93 92 CB 40 76 BE CE 95 FA A8 A8 CB 40 79 A2 5A 36 E2 EB 1C 92 E7 F8 92 19 08 93 92 CB 40 78 CE CE 95 FA A8 A8 CB 40 7A 62 5A 36 E2 EB 1C 92 F1 01 92 0F FF 93 92 CB 40 7A 8E CE 95 FA A8 A8 CB 40 7A 62 5A 36 E2 EB 1C 92 F9 08 92 07 F8 93 92 CB 40 7A FE CE 95 FA A8 A8 CB 40 7B 32 5A 36 E2 EB 1C 92 FA FA 92 06 06 93 92 CB 40 7E CE CE 95 FA A8 A8 CB 40 7B F2 5A 36 E2 EB 1C 92 D0 D7 05 92 29 FB 93 92 CB 40 81 A7 67 4A FD 54 54 CB 40 7B 42 5A 36 E2 EB 1C 92 00 02 92 00 FE 93 92 CB 40 81 1F 67 4A FD 54 54 CB 40 7A 92 5A 36 E2 EB 1C 92 12 FF 92 EE 01 93 92 CB 40 80 07 67 4A FD 54 54 CB 40 7A A2 5A 36 E2 EB 1C 92 14 05 92 EC FB 93 92 CB 40 7D CE CE 95 FA A8 A8 CB 40 79 92 5A 36 E2 EB 1C 92 00 12 92 00 EE 93 92 CB 40 7D AE CE 95 FA A8 A8 CB 40 77 B2 5A 36 E2 EB 1C 92 15 0A 92 EB F6 92 CB 40 7D CE CE 95 FA A8 A8 CB 40 75 42 5A 36 E2 EB 1C 93 92 CB 40 7E 1E CE 95 FA A8 A8 CB 40 73 82 5A 36 E2 EB 1C 92 F4 0F 92 0C F1 93 92 CB 40 80 37 67 4A FD 54 54 CB 40 73 62 5A 36 E2 EB 1C 92 01 F3 92 FF 0D 93 92 CB 40 7F BE CE 95 FA A8 A8 CB 40 75 92 5A 36 E2 EB 1C 92 00 F2 92 00 0E 93 92 CB 40 7F DE CE 95 FA A8 A8 CB 40 77 72 5A 36 E2 EB 1C 92 08 ED 92 F8 13 93 92 CB 40 7F 4E CE 95 FA A8 A8 CB 40 79 D2 5A 36 E2 EB 1C 92 FE F9 92 02 07 93 92 CB 40 7F BE CE 95 FA A8 A8 CB 40 7B 22 5A 36 E2 EB 1C 92 F2 02 92 0E FE 93 92 CB 40 80 77 67 4A FD 54 54 CB 40 7A 02 5A 36 E2 EB 1C 92 04 15 92 FC EB 93 92 CB 40 82 57 67 4A FD 54 54 CB 40 73 92 5A 36 E2 EB 1C 92 EA 0E 92 16 F2 93 92 CB 40 84 27 67 4A FD 54 54 CB 40 6E 04 B4 6D C5 D6 39 92 F7 11 92 09 EF 93 92 CB 40 85 B7 67 4A FD 54 54 CB 40 64 04 B4 6D C5 D6 39 92 F9 12 92 07 EE 93 92 CB 40 85 EF 67 4A FD 54 54 CB 40 61 84 B4 6D C5 D6 39 92 05 09 92 16 FB 93 92 CB 40 86 F7 67 4A FD 54 54 CB 40 60 44 B4 6D C5 D6 39 92 FC 09 92 04 F7 93 92 CB 40 87 57 67 4A FD 54 54 CB 40 5A C9 68 DB 8B AC 71 92 05 09 92 FB F7 93 92 CB 40 86 BF 67 4A FD 54 54 CB 40 57 09 68 DB 8B AC 71 92 05 0C 92 FB F4 92 CB 40 86 7F 67 4A FD 54 54 CB 40 51 89 68 DB 8B AC 71 92 CB 40 86 7F 67 4A FD 54 54 CB 40 51 89 68 DB 8B AC 71 A9 66 69 6C 6C 43 6F 6C 6F 72 93 01 01 01 AB 73 74 72 6F 6B 65 57 69 64 74 68 CB 3F EA F2 86 BC A1 AF 28

Converted binary from http://msgpack-json-editor.com/

92 92 A5 4C 61 79 65 72 83 AB 61 70 70 6C 79 4D 61 74 72 69 78 C3 A6 6C 6F 63 6B 65 64 C3 A8 63 68 69 6C 64 72 65 6E 91 92 A6 52 61 73 74 65 72 84 AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 CB 3F F9 DB CC 48 67 6F 30 00 00 CB 3F F9 DB CC 48 67 6F 30 CB 40 79 00 00 00 00 00 01 CB 40 6F 0D 79 43 5E 50 D8 A6 6C 6F 63 6B 65 64 C3 A6 73 6F 75 72 63 65 D9 30 2F 69 2F 63 73 2F 32 31 2F 31 31 2F 66 64 37 63 61 38 32 38 36 62 65 32 66 32 35 36 62 33 65 64 64 35 35 61 38 34 66 33 31 35 36 35 2E 70 6E 67 92 A5 4C 61 79 65 72 82 AB 61 70 70 6C 79 4D 61 74 72 69 78 C3 A8 63 68 69 6C 64 72 65 6E 98 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 54 9F FF FF FF FF FF AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 AC 43 6F 6D 70 61 6E 79 20 4E 61 6D 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 03 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 40 56 D4 95 B5 25 6D A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 43 9B 65 80 72 F9 B6 A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 63 42 86 BC A1 AF 29 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A9 46 75 6C 6C 20 4E 61 6D 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 02 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 4A BC A1 AF 28 6B C9 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 50 0A C7 69 18 40 AC A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 68 85 E5 0D 79 43 5E AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A9 4A 6F 62 20 54 69 74 6C 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 04 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 3A BC A1 AF 28 6B C9 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 40 0A C7 69 18 40 AC A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 70 78 D7 94 35 E5 0D AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A5 45 6D 61 69 6C A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 05 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 72 D7 28 6B CA 1A F2 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A5 50 68 6F 6E 65 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 06 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 75 35 79 43 5E 50 D7 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 AD 41 64 64 72 65 73 73 20 4C 69 6E 65 73 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 15 AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A6 4D 79 54 65 78 74 8C AB 61 70 70 6C 79 4D 61 74 72 69 78 C2 A6 6D 61 74 72 69 78 96 01 00 00 01 CB 40 45 0D 79 43 5E 50 D7 CB 40 79 6B 5E 50 D7 94 36 AC 6C 6F 63 6B 53 63 61 6C 69 6E 67 59 C3 AD 6C 6F 63 6B 53 63 61 6C 69 6E 67 58 59 C3 A7 63 6F 6E 74 65 6E 74 A3 57 65 62 A6 66 6F 6E 74 49 64 A4 31 34 37 32 AF 74 65 78 74 54 69 74 6C 65 54 79 70 65 49 64 0A AA 66 6F 6E 74 46 61 6D 69 6C 79 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A8 66 6F 6E 74 53 69 7A 65 CB 40 37 C4 1D F1 07 7C 41 A4 66 6F 6E 74 B3 22 4F 70 65 6E 20 53 61 6E 73 22 2C 22 73 65 72 69 66 22 A7 6C 65 61 64 69 6E 67 CB 40 3C 84 F0 BA D5 C8 4E A8 6D 61 78 57 69 64 74 68 CB 40 86 5E 50 D7 94 35 E6 92 A4 50 61 74 68 84 AB 61 70 70 6C 79 4D 61 74 72 69 78 C3 A8 73 65 67 6D 65 6E 74 73 DC 00 2A 93 92 CB 40 86 7F 67 4A FD 54 54 CB 40 51 49 68 DB 8B AC 71 92 27 13 92 D0 D9 ED 93 92 CB 40 84 07 67 4A FD 54 54 CB 40 4D 12 D1 B7 17 58 E2 92 13 F8 92 ED 08 93 92 CB 40 82 7F 67 4A FD 54 54 CB 40 5A 09 68 DB 8B AC 71 92 06 F4 92 FA 0C 93 92 CB 40 81 EF 67 4A FD 54 54 CB 40 61 C4 B4 6D C5 D6 39 92 09 FA 92 F7 06 93 92 CB 40 81 17 67 4A FD 54 54 CB 40 63 04 B4 6D C5 D6 39 92 04 00 92 FC 00 93 92 CB 40 7B AE CE 95 FA A8 A8 CB 40 60 84 B4 6D C5 D6 39 92 1E 0C 92 E2 F4 93 92 CB 40 76 1E CE 95 FA A8 A8 CB 40 62 E4 B4 6D C5 D6 39 92 11 F3 92 EF 0D 93 92 CB 40 73 1E CE 95 FA A8 A8 CB 40 6D A4 B4 6D C5 D6 39 92 04 EB 92 FC 15 93 92 CB 40 72 FE CE 95 FA A8 A8 CB 40 75 52 5A 36 E2 EB 1C 92 ED E7 92 FF 01 93 92 CB 40 70 9E CE 95 FA A8 A8 CB 40 76 C2 5A 36 E2 EB 1C 92 30 03 92 D0 D0 FD 93 92 CB 40 6A 9D 9D 2B F5 51 50 CB 40 78 62 5A 36 E2 EB 1C 92 15 F2 92 EB 0E 93 92 CB 40 64 3D 9D 2B F5 51 50 CB 40 79 E2 5A 36 E2 EB 1C 92 08 F0 92 F8 10 93 92 CB 40 67 BD 9D 2B F5 51 50 CB 40 7C E2 5A 36 E2 EB 1C 92 D0 D7 FE 92 29 02 93 92 CB 40 72 FE CE 95 FA A8 A8 CB 40 7A 02 5A 36 E2 EB 1C 92 F9 10 92 07 F0 93 92 CB 40 75 1E CE 95 FA A8 A8 CB 40 78 62 5A 36 E2 EB 1C 92 F5 FD 92 0B 03 93 92 CB 40 76 BE CE 95 FA A8 A8 CB 40 79 A2 5A 36 E2 EB 1C 92 E7 F8 92 19 08 93 92 CB 40 78 CE CE 95 FA A8 A8 CB 40 7A 62 5A 36 E2 EB 1C 92 F1 01 92 0F FF 93 92 CB 40 7A 8E CE 95 FA A8 A8 CB 40 7A 62 5A 36 E2 EB 1C 92 F9 08 92 07 F8 93 92 CB 40 7A FE CE 95 FA A8 A8 CB 40 7B 32 5A 36 E2 EB 1C 92 FA FA 92 06 06 93 92 CB 40 7E CE CE 95 FA A8 A8 CB 40 7B F2 5A 36 E2 EB 1C 92 D0 D7 05 92 29 FB 93 92 CB 40 81 A7 67 4A FD 54 54 CB 40 7B 42 5A 36 E2 EB 1C 92 00 02 92 00 FE 93 92 CB 40 81 1F 67 4A FD 54 54 CB 40 7A 92 5A 36 E2 EB 1C 92 12 FF 92 EE 01 93 92 CB 40 80 07 67 4A FD 54 54 CB 40 7A A2 5A 36 E2 EB 1C 92 14 05 92 EC FB 93 92 CB 40 7D CE CE 95 FA A8 A8 CB 40 79 92 5A 36 E2 EB 1C 92 00 12 92 00 EE 93 92 CB 40 7D AE CE 95 FA A8 A8 CB 40 77 B2 5A 36 E2 EB 1C 92 15 0A 92 EB F6 92 CB 40 7D CE CE 95 FA A8 A8 CB 40 75 42 5A 36 E2 EB 1C 93 92 CB 40 7E 1E CE 95 FA A8 A8 CB 40 73 82 5A 36 E2 EB 1C 92 F4 0F 92 0C F1 93 92 CB 40 80 37 67 4A FD 54 54 CB 40 73 62 5A 36 E2 EB 1C 92 01 F3 92 FF 0D 93 92 CB 40 7F BE CE 95 FA A8 A8 CB 40 75 92 5A 36 E2 EB 1C 92 00 F2 92 00 0E 93 92 CB 40 7F DE CE 95 FA A8 A8 CB 40 77 72 5A 36 E2 EB 1C 92 08 ED 92 F8 13 93 92 CB 40 7F 4E CE 95 FA A8 A8 CB 40 79 D2 5A 36 E2 EB 1C 92 FE F9 92 02 07 93 92 CB 40 7F BE CE 95 FA A8 A8 CB 40 7B 22 5A 36 E2 EB 1C 92 F2 02 92 0E FE 93 92 CB 40 80 77 67 4A FD 54 54 CB 40 7A 02 5A 36 E2 EB 1C 92 04 15 92 FC EB 93 92 CB 40 82 57 67 4A FD 54 54 CB 40 73 92 5A 36 E2 EB 1C 92 EA 0E 92 16 F2 93 92 CB 40 84 27 67 4A FD 54 54 CB 40 6E 04 B4 6D C5 D6 39 92 F7 11 92 09 EF 93 92 CB 40 85 B7 67 4A FD 54 54 CB 40 64 04 B4 6D C5 D6 39 92 F9 12 92 07 EE 93 92 CB 40 85 EF 67 4A FD 54 54 CB 40 61 84 B4 6D C5 D6 39 92 05 09 92 16 FB 93 92 CB 40 86 F7 67 4A FD 54 54 CB 40 60 44 B4 6D C5 D6 39 92 FC 09 92 04 F7 93 92 CB 40 87 57 67 4A FD 54 54 CB 40 5A C9 68 DB 8B AC 71 92 05 09 92 FB F7 93 92 CB 40 86 BF 67 4A FD 54 54 CB 40 57 09 68 DB 8B AC 71 92 05 0C 92 FB F4 92 CB 40 86 7F 67 4A FD 54 54 CB 40 51 89 68 DB 8B AC 71 92 CB 40 86 7F 67 4A FD 54 54 CB 40 51 89 68 DB 8B AC 71 A9 66 69 6C 6C 43 6F 6C 6F 72 93 01 01 01 AB 73 74 72 6F 6B 65 57 69 64 74 68 CB 3F EA F2 86 BC A1 AF 28
@kawanet
Copy link
Owner

kawanet commented Sep 2, 2015

Short answer:

  • No problem on interoperability between those two modules. Both give the same result but in a difference representation. You can use both.

Longer answer:

  • msgpack-json-editor.com gives shorter result. It looks better.

Only the difference is str's length representation.

http://kawanet.github.io/msgpack-lite/

DA 00 30

http://msgpack-json-editor.com/

D9 30

Both two of above represents str of length 0x30 (48 bytes). Msgpack spec allow both.

https://github.com/msgpack/msgpack/blob/master/spec.md

format name first byte (in binary) first byte (in hex)
fixstr 101xxxxx 0xa0 - 0xbf
str 8 11011001 0xd9
str 16 11011010 0xda
str 32 11011011 0xdb

I'll check our code later. Thank you anyway for the report.

@kawanet
Copy link
Owner

kawanet commented Sep 2, 2015

Try: "/i/cs/21/11/fd7ca8286be2f256b3edd55a84f31565.png"

It seems the binaries listed above are reversed.

http://kawanet.github.io/msgpack-lite/ -> D9 30

D9 30 2F 69 2F 63 73 2F 32 31 2F 31 31 2F 66 64 37 63 61 38 32 38 36 62 65 32 66 32 35 36 62 33 65 64 64 35 35 61 38 34 66 33 31 35 36 35 2E 70 6E 67

http://msgpack-json-editor.com -> DA 00 30

DA 00 30 2F 69 2F 63 73 2F 32 31 2F 31 31 2F 66 64 37 63 61 38 32 38 36 62 65 32 66 32 35 36 62 33 65 64 64 35 35 61 38 34 66 33 31 35 36 35 2E 70 6E 67

Conclusion: msgpack-lite gives better binary. msgpack-json-editor gives one-byte-longer binary.

@kawanet kawanet closed this as completed Sep 2, 2015
@sapics
Copy link
Author

sapics commented Sep 2, 2015

Thank you for quick answer and detailed description!

I understand Msgpack spec allow both, and this library works well!

http://msgpack-json-editor.com (which would use the library https://github.com/msgpack/msgpack-javascript) looks a bug in decoding.
Because the binary created by http://kawanet.github.io/msgpack-lite/ cannot load with http://msgpack-json-editor.com.
While, the binary created by http://msgpack-json-editor.com can load with http://kawanet.github.io/msgpack-lite/.

@royaltm
Copy link

royaltm commented Jun 27, 2016

Well, there's another difference, msgpack module will interpret numeric (up to 2^31-1) object keys as integers, while this library interprets keys always as strings.

var mplite = require('msgpack-lite');
var mpnat = require('msgpack');
mplite.encode({65535: 0}); // <Buffer 81 a5 36 35 35 33 35 00>
mpnat.pack({65535: 0}); // <Buffer 81 cd ff ff 00>

@kawanet
Copy link
Owner

kawanet commented Jun 27, 2016

@royaltm It's interesting that msgpack gives shorter result encoded.

ECMAScript spec requests String type for Object's key (property name).
Some other languages, e.g. Java, allows another type than String for Map's key.
Java's msgpack library may encode Map's key as a Number, then.
JavaScript's msgpack library should encode Object's key as a String, in my opinion.

3 bytes shorter looks charming, however.

@royaltm
Copy link

royaltm commented Jun 28, 2016

Well this is always tempting to squeeze the juice out of format which sole purpose was to compress space.
I think EC spec are not in the way because: a[2] === a["2"]. In case of msgpack it might be a side effect of v8 engine allowing to access Object property by either a v8::Object as a key or uint32_t. Exploiting this "compression" feature in pure javascript would probably be harmful to performance since the algorithm had to somehow detect the "integer" string. The fastest way I could think of would be: String(key >>> 0) === key. On the other hand the numeric keys are probably not very common. But then again without case study it's just pure speculation.

@kawanet
Copy link
Owner

kawanet commented Jun 28, 2016

I guess this could be done with a small change.

https://github.com/kawanet/msgpack-lite/blob/master/lib/write-type.js#L242

    keys.forEach(function(key) {
      var intkey = key | 0;
      encode(encoder, (intkey == key) ? intkey : key);
      encode(encoder, value[key]);
    });

It's not tested though. String(intkey) === key would give the same result.

key | 0 might give better compression rate than key >>> 0 when a key starts with -.

@kawanet
Copy link
Owner

kawanet commented Jun 28, 2016

It seems B or C would be better than A to get compressed.

Solution A: using Integer map key instead of String map key.

Solution B: using gzip compression after encoded.

Solution C: using Array instead of Object container.

@royaltm
Copy link

royaltm commented Jun 28, 2016

Agreed. Without an exemplary use case A is just a premature optimization. I can think of one example from my past, an application that used a multi-dimensional vector {[dim1]: value, [dim2]: value, ...} where dimN was integer and N was many, but I've just used a simple custom serial format for storage. Thanks for the exercise anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants