basant307/AI_Governance_Project
048
1# json-pack2 3The fastest JSON serialization and deserialization library for JavaScript, Node.js, browser.4 5 6## Supported Formats7 8This library implements the following serialization formats:9 10- **[MessagePack](./src/msgpack/README.md)** - The classic, *MessagePack*11- **[CBOR](./src/cbor/README.md)** - Concise Binary Object Representation codec12- **[UBJSON](./src/ubjson/README.md)** - Universal Binary JSON codec13- **[JSON](./src/json/README.md)** - Enhanced JSON encoder/decoder with additional features14- **[JSON Binary](./src/json-binary/README.md)** - JSON with binary data support using Uint8Array15- **[Amazon Ion](./src/ion/README.md)** - Amazon's Ion data serialization format16- **[BSON](./src/bson/README.md)** - Binary JSON format used by MongoDB17- **[RESP](./src/resp/README.md)** - Redis Serialization Protocol (v2 and v3)18- **[Bencode](./src/bencode/README.md)** - BitTorrent's encoding format19 20Each format comes with optimized encoders and decoders designed for maximum performance.21 22 23## Installation24 25```bash26npm install @jsonjoy.com/json-pack27```28 29 30## Quick Start31 32```ts33import {MessagePackEncoder, MessagePackDecoder} from '@jsonjoy.com/json-pack/lib/msgpack';34 35const encoder = new MessagePackEncoder();36const decoder = new MessagePackDecoder();37 38const data = {hello: 'world', numbers: [1, 2, 3]};39const binary = encoder.encode(data);40const restored = decoder.decode(binary);41 42console.log(restored); // {hello: 'world', numbers: [1, 2, 3]}43```44 45 46## Benchmarks47 48Encoding:49 50```51npx ts-node benchmarks/json-pack/bench.encoding.ts52=============================================================================== Benchmark: Encoding53Warmup: 1000x , Node.js: v20.0.0 , Arch: arm64 , CPU: Apple M154---------------------------------------------------------------------------- Small object, 44 bytes55๐ค json-pack JsonEncoder x 5,385,617 ops/sec ยฑ0.53% (100 runs sampled)56๐ค Buffer.from(JSON.stringify()) x 2,254,954 ops/sec ยฑ0.83% (97 runs sampled)57๐ค json-pack CborEncoderFast x 5,953,159 ops/sec ยฑ1.12% (92 runs sampled)58๐ค json-pack CborEncoder x 6,248,036 ops/sec ยฑ0.29% (98 runs sampled)59๐ค json-pack MsgPackEncoderFast x 3,121,940 ops/sec ยฑ0.16% (99 runs sampled)60๐ค JSON.stringify() x 3,866,116 ops/sec ยฑ0.11% (101 runs sampled)61๐ค @msgpack/msgpack x 1,406,546 ops/sec ยฑ0.94% (93 runs sampled)62๐ค msgpackr x 2,404,916 ops/sec ยฑ3.22% (86 runs sampled)63๐ค cbor-x x 4,737,433 ops/sec ยฑ1.00% (97 runs sampled)64๐ค msgpack-lite x 987,201 ops/sec ยฑ2.84% (91 runs sampled)65๐ค msgpack5 x 197,867 ops/sec ยฑ3.65% (84 runs sampled)66๐ค messagepack x 171,865 ops/sec ยฑ4.44% (74 runs sampled)67Fastest is ๐ค json-pack CborEncoder68------------------------------------------------------------------------- Typical object, 993 bytes69๐ค json-pack JsonEncoder x 299,970 ops/sec ยฑ0.30% (97 runs sampled)70๐ค Buffer.from(JSON.stringify()) x 211,651 ops/sec ยฑ0.18% (100 runs sampled)71๐ค json-pack CborEncoderFast x 429,535 ops/sec ยฑ3.38% (93 runs sampled)72๐ค json-pack CborEncoder x 428,848 ops/sec ยฑ0.71% (97 runs sampled)73๐ค json-pack MsgPackEncoderFast x 322,982 ops/sec ยฑ0.67% (97 runs sampled)74๐ค JSON.stringify() x 306,828 ops/sec ยฑ1.94% (90 runs sampled)75๐ค @msgpack/msgpack x 199,937 ops/sec ยฑ5.52% (93 runs sampled)76๐ค msgpackr x 317,457 ops/sec ยฑ2.18% (90 runs sampled)77๐ค cbor-x x 401,854 ops/sec ยฑ3.20% (92 runs sampled)78๐ค msgpack-lite x 135,110 ops/sec ยฑ1.29% (94 runs sampled)79๐ค msgpack5 x 15,217 ops/sec ยฑ3.72% (85 runs sampled)80๐ค messagepack x 13,853 ops/sec ยฑ4.73% (71 runs sampled)81Fastest is ๐ค json-pack CborEncoder82-------------------------------------------------------------------------- Large object, 3741 bytes83๐ค json-pack JsonEncoder x 87,312 ops/sec ยฑ1.10% (96 runs sampled)84๐ค Buffer.from(JSON.stringify()) x 64,718 ops/sec ยฑ0.45% (96 runs sampled)85๐ค json-pack CborEncoderFast x 134,615 ops/sec ยฑ0.19% (97 runs sampled)86๐ค json-pack CborEncoder x 128,975 ops/sec ยฑ0.20% (98 runs sampled)87๐ค json-pack MsgPackEncoderFast x 103,325 ops/sec ยฑ1.62% (98 runs sampled)88๐ค JSON.stringify() x 101,067 ops/sec ยฑ1.36% (95 runs sampled)89๐ค @msgpack/msgpack x 61,715 ops/sec ยฑ0.22% (98 runs sampled)90๐ค msgpackr x 95,175 ops/sec ยฑ3.84% (95 runs sampled)91๐ค cbor-x x 111,658 ops/sec ยฑ1.34% (95 runs sampled)92๐ค msgpack-lite x 41,364 ops/sec ยฑ0.28% (100 runs sampled)93๐ค msgpack5 x 3,262 ops/sec ยฑ4.32% (71 runs sampled)94๐ค messagepack x 4,167 ops/sec ยฑ7.29% (65 runs sampled)95Fastest is ๐ค json-pack CborEncoderFast96-------------------------------------------------------------------- Very large object, 45750 bytes97๐ค json-pack JsonEncoder x 5,687 ops/sec ยฑ1.92% (94 runs sampled)98๐ค Buffer.from(JSON.stringify()) x 5,813 ops/sec ยฑ2.51% (97 runs sampled)99๐ค json-pack CborEncoderFast x 5,749 ops/sec ยฑ0.67% (98 runs sampled)100๐ค json-pack CborEncoder x 5,515 ops/sec ยฑ0.70% (98 runs sampled)101๐ค json-pack MsgPackEncoderFast x 5,027 ops/sec ยฑ0.19% (100 runs sampled)102๐ค JSON.stringify() x 7,687 ops/sec ยฑ0.87% (99 runs sampled)103๐ค @msgpack/msgpack x 3,379 ops/sec ยฑ2.20% (97 runs sampled)104๐ค msgpackr x 5,929 ops/sec ยฑ15.26% (96 runs sampled)105๐ค cbor-x x 5,032 ops/sec ยฑ5.17% (90 runs sampled)106๐ค msgpack-lite x 2,173 ops/sec ยฑ1.17% (97 runs sampled)107๐ค msgpack5 x 179 ops/sec ยฑ2.95% (68 runs sampled)108๐ค messagepack x 167 ops/sec ยฑ1.09% (79 runs sampled)109Fastest is ๐ค JSON.stringify()110------------------------------------------------------------------ Object with many keys, 969 bytes111๐ค json-pack JsonEncoder x 213,447 ops/sec ยฑ3.31% (95 runs sampled)112๐ค Buffer.from(JSON.stringify()) x 168,303 ops/sec ยฑ2.13% (95 runs sampled)113๐ค json-pack CborEncoderFast x 275,511 ops/sec ยฑ0.40% (95 runs sampled)114๐ค json-pack CborEncoder x 270,949 ops/sec ยฑ0.32% (97 runs sampled)115๐ค json-pack MsgPackEncoderFast x 210,525 ops/sec ยฑ0.66% (99 runs sampled)116๐ค JSON.stringify() x 200,767 ops/sec ยฑ0.19% (101 runs sampled)117๐ค @msgpack/msgpack x 163,665 ops/sec ยฑ0.81% (98 runs sampled)118๐ค msgpackr x 151,889 ops/sec ยฑ0.27% (96 runs sampled)119๐ค cbor-x x 191,010 ops/sec ยฑ0.44% (96 runs sampled)120๐ค msgpack-lite x 93,537 ops/sec ยฑ0.68% (99 runs sampled)121๐ค msgpack5 x 28,581 ops/sec ยฑ1.74% (93 runs sampled)122๐ค messagepack x 8,330 ops/sec ยฑ5.00% (61 runs sampled)123Fastest is ๐ค json-pack CborEncoderFast124------------------------------------------------------------------------- String ladder, 3398 bytes125๐ค json-pack JsonEncoder x 147,755 ops/sec ยฑ0.23% (97 runs sampled)126๐ค Buffer.from(JSON.stringify()) x 128,378 ops/sec ยฑ0.15% (96 runs sampled)127๐ค json-pack CborEncoderFast x 298,037 ops/sec ยฑ0.73% (98 runs sampled)128๐ค json-pack CborEncoder x 293,608 ops/sec ยฑ0.22% (97 runs sampled)129๐ค json-pack MsgPackEncoderFast x 244,864 ops/sec ยฑ3.92% (92 runs sampled)130๐ค JSON.stringify() x 165,819 ops/sec ยฑ1.72% (94 runs sampled)131๐ค @msgpack/msgpack x 79,127 ops/sec ยฑ1.43% (93 runs sampled)132๐ค msgpackr x 236,254 ops/sec ยฑ1.45% (94 runs sampled)133๐ค cbor-x x 206,835 ops/sec ยฑ1.26% (92 runs sampled)134๐ค msgpack-lite x 157,499 ops/sec ยฑ0.39% (98 runs sampled)135๐ค msgpack5 x 55,363 ops/sec ยฑ2.75% (88 runs sampled)136๐ค messagepack x 8,261 ops/sec ยฑ2.97% (72 runs sampled)137Fastest is ๐ค json-pack CborEncoderFast138-------------------------------------------------------------------------- Long strings, 7011 bytes139๐ค json-pack JsonEncoder x 51,334 ops/sec ยฑ0.16% (99 runs sampled)140๐ค Buffer.from(JSON.stringify()) x 27,108 ops/sec ยฑ4.89% (90 runs sampled)141๐ค json-pack CborEncoderFast x 374,042 ops/sec ยฑ6.39% (91 runs sampled)142๐ค json-pack CborEncoder x 424,864 ops/sec ยฑ0.35% (97 runs sampled)143๐ค json-pack MsgPackEncoderFast x 363,465 ops/sec ยฑ1.91% (85 runs sampled)144๐ค JSON.stringify() x 59,793 ops/sec ยฑ0.14% (100 runs sampled)145๐ค @msgpack/msgpack x 57,373 ops/sec ยฑ0.13% (98 runs sampled)146๐ค msgpackr x 372,751 ops/sec ยฑ2.17% (90 runs sampled)147๐ค cbor-x x 389,277 ops/sec ยฑ1.60% (93 runs sampled)148๐ค msgpack-lite x 170,279 ops/sec ยฑ0.82% (97 runs sampled)149๐ค msgpack5 x 83,809 ops/sec ยฑ2.80% (83 runs sampled)150๐ค messagepack x 20,076 ops/sec ยฑ1.45% (87 runs sampled)151Fastest is ๐ค json-pack CborEncoder152-------------------------------------------------------------------------- Short strings, 170 bytes153๐ค json-pack JsonEncoder x 1,577,757 ops/sec ยฑ0.16% (98 runs sampled)154๐ค Buffer.from(JSON.stringify()) x 1,057,420 ops/sec ยฑ0.38% (100 runs sampled)155๐ค json-pack CborEncoderFast x 1,844,775 ops/sec ยฑ0.20% (100 runs sampled)156๐ค json-pack CborEncoder x 1,468,011 ops/sec ยฑ0.23% (98 runs sampled)157๐ค json-pack MsgPackEncoderFast x 1,240,577 ops/sec ยฑ0.19% (98 runs sampled)158๐ค JSON.stringify() x 1,852,916 ops/sec ยฑ0.20% (100 runs sampled)159๐ค @msgpack/msgpack x 781,414 ops/sec ยฑ0.42% (92 runs sampled)160๐ค msgpackr x 1,672,474 ops/sec ยฑ0.23% (99 runs sampled)161๐ค cbor-x x 1,351,338 ops/sec ยฑ0.20% (97 runs sampled)162๐ค msgpack-lite x 416,300 ops/sec ยฑ0.76% (96 runs sampled)163๐ค msgpack5 x 151,657 ops/sec ยฑ1.97% (91 runs sampled)164๐ค messagepack x 35,124 ops/sec ยฑ5.60% (61 runs sampled)165Fastest is ๐ค JSON.stringify()166-------------------------------------------------------------------------------- Numbers, 136 bytes167๐ค json-pack JsonEncoder x 1,708,133 ops/sec ยฑ1.09% (98 runs sampled)168๐ค Buffer.from(JSON.stringify()) x 1,135,630 ops/sec ยฑ1.67% (95 runs sampled)169๐ค json-pack CborEncoderFast x 2,658,037 ops/sec ยฑ1.33% (97 runs sampled)170๐ค json-pack CborEncoder x 3,084,914 ops/sec ยฑ0.24% (101 runs sampled)171๐ค json-pack MsgPackEncoderFast x 1,620,958 ops/sec ยฑ2.15% (94 runs sampled)172๐ค JSON.stringify() x 1,602,303 ops/sec ยฑ0.24% (98 runs sampled)173๐ค @msgpack/msgpack x 997,885 ops/sec ยฑ1.70% (97 runs sampled)174๐ค msgpackr x 2,659,862 ops/sec ยฑ0.51% (96 runs sampled)175๐ค cbor-x x 3,116,954 ops/sec ยฑ0.89% (95 runs sampled)176๐ค msgpack-lite x 892,281 ops/sec ยฑ2.19% (92 runs sampled)177๐ค msgpack5 x 144,567 ops/sec ยฑ3.06% (88 runs sampled)178๐ค messagepack x 383,134 ops/sec ยฑ2.95% (74 runs sampled)179Fastest is ๐ค cbor-x180--------------------------------------------------------------------------------- Tokens, 308 bytes181๐ค json-pack JsonEncoder x 1,370,517 ops/sec ยฑ0.52% (98 runs sampled)182๐ค Buffer.from(JSON.stringify()) x 1,016,856 ops/sec ยฑ0.16% (93 runs sampled)183๐ค json-pack CborEncoderFast x 1,347,193 ops/sec ยฑ0.20% (96 runs sampled)184๐ค json-pack CborEncoder x 1,353,358 ops/sec ยฑ0.20% (101 runs sampled)185๐ค json-pack MsgPackEncoderFast x 1,130,418 ops/sec ยฑ0.14% (96 runs sampled)186๐ค JSON.stringify() x 1,549,669 ops/sec ยฑ0.49% (97 runs sampled)187๐ค @msgpack/msgpack x 871,477 ops/sec ยฑ0.92% (98 runs sampled)188๐ค msgpackr x 1,716,378 ops/sec ยฑ0.20% (99 runs sampled)189๐ค cbor-x x 1,951,639 ops/sec ยฑ0.16% (100 runs sampled)190๐ค msgpack-lite x 622,495 ops/sec ยฑ1.03% (96 runs sampled)191๐ค msgpack5 x 81,727 ops/sec ยฑ2.04% (91 runs sampled)192๐ค messagepack x 609,651 ops/sec ยฑ1.64% (89 runs sampled)193Fastest is ๐ค cbor-x194```195 196Decoding:197 198```199node benchmarks/json-pack/bench.decoding.js200=============================================================================== Benchmark: Decoding201Warmup: 1000x , Node.js: v16.14.2 , Arch: arm64 , CPU: Apple M1202-------------------------------------------------------------------- Very large object, 45750 bytes203๐ JSON.parse() x 3,506 ops/sec ยฑ0.19% (100 runs sampled)204๐ sjson.parse() x 3,336 ops/sec ยฑ0.11% (99 runs sampled)205๐ json-pack CborDecoderBase x 4,915 ops/sec ยฑ0.18% (100 runs sampled)206๐ cbor-x x 4,747 ops/sec ยฑ0.15% (100 runs sampled)207๐ cbor x 260 ops/sec ยฑ0.29% (90 runs sampled)208๐ json-pack MsgPackDecoderFast x 5,506 ops/sec ยฑ0.48% (100 runs sampled)209๐ msgpackr x 4,729 ops/sec ยฑ0.23% (101 runs sampled)210๐ @msgpack/msgpack x 4,096 ops/sec ยฑ0.25% (100 runs sampled)211๐ msgpack5 x 920 ops/sec ยฑ0.34% (99 runs sampled)212๐ msgpack-lite x 1,223 ops/sec ยฑ0.10% (100 runs sampled)213๐ messagepack x 194 ops/sec ยฑ1.93% (73 runs sampled)214Fastest is ๐ json-pack MsgPackDecoderFast215-------------------------------------------------------------------------- Large object, 3741 bytes216๐ JSON.parse() x 91,582 ops/sec ยฑ0.30% (100 runs sampled)217๐ sjson.parse() x 84,411 ops/sec ยฑ0.16% (99 runs sampled)218๐ json-pack CborDecoderBase x 94,618 ops/sec ยฑ0.27% (97 runs sampled)219๐ cbor-x x 108,102 ops/sec ยฑ0.37% (101 runs sampled)220๐ cbor x 4,845 ops/sec ยฑ0.79% (95 runs sampled)221๐ json-pack MsgPackDecoderFast x 102,544 ops/sec ยฑ0.39% (99 runs sampled)222๐ msgpackr x 111,668 ops/sec ยฑ0.16% (101 runs sampled)223๐ @msgpack/msgpack x 56,952 ops/sec ยฑ0.51% (97 runs sampled)224๐ msgpack5 x 17,420 ops/sec ยฑ0.60% (101 runs sampled)225๐ msgpack-lite x 20,536 ops/sec ยฑ0.23% (98 runs sampled)226๐ messagepack x 3,247 ops/sec ยฑ2.30% (87 runs sampled)227Fastest is ๐ msgpackr228------------------------------------------------------------------------- Typical object, 993 bytes229๐ JSON.parse() x 304,670 ops/sec ยฑ0.98% (97 runs sampled)230๐ sjson.parse() x 283,259 ops/sec ยฑ0.20% (98 runs sampled)231๐ json-pack CborDecoderBase x 298,666 ops/sec ยฑ0.19% (100 runs sampled)232๐ cbor-x x 322,995 ops/sec ยฑ0.71% (97 runs sampled)233๐ cbor x 14,391 ops/sec ยฑ0.88% (95 runs sampled)234๐ json-pack MsgPackDecoderFast x 321,984 ops/sec ยฑ0.23% (100 runs sampled)235๐ msgpackr x 328,671 ops/sec ยฑ0.31% (99 runs sampled)236๐ @msgpack/msgpack x 198,604 ops/sec ยฑ0.85% (96 runs sampled)237๐ msgpack5 x 51,549 ops/sec ยฑ0.32% (99 runs sampled)238๐ msgpack-lite x 67,171 ops/sec ยฑ0.19% (99 runs sampled)239๐ messagepack x 9,464 ops/sec ยฑ1.95% (92 runs sampled)240Fastest is ๐ msgpackr241---------------------------------------------------------------------------- Small object, 44 bytes242๐ JSON.parse() x 2,654,389 ops/sec ยฑ0.28% (98 runs sampled)243๐ sjson.parse() x 2,325,941 ops/sec ยฑ0.21% (98 runs sampled)244๐ json-pack CborDecoderBase x 3,357,402 ops/sec ยฑ0.31% (99 runs sampled)245๐ cbor-x x 4,133,737 ops/sec ยฑ0.29% (101 runs sampled)246๐ cbor x 112,776 ops/sec ยฑ5.79% (88 runs sampled)247๐ json-pack MsgPackDecoderFast x 3,359,127 ops/sec ยฑ0.56% (98 runs sampled)248๐ msgpackr x 3,436,592 ops/sec ยฑ0.35% (97 runs sampled)249๐ @msgpack/msgpack x 2,288,251 ops/sec ยฑ0.52% (94 runs sampled)250๐ msgpack5 x 377,061 ops/sec ยฑ0.67% (96 runs sampled)251๐ msgpack-lite x 872,569 ops/sec ยฑ0.31% (100 runs sampled)252๐ messagepack x 116,422 ops/sec ยฑ1.84% (86 runs sampled)253Fastest is ๐ cbor-x254------------------------------------------------------------------ Object with many keys, 969 bytes255๐ JSON.parse() x 270,312 ops/sec ยฑ0.57% (98 runs sampled)256๐ sjson.parse() x 242,328 ops/sec ยฑ3.10% (97 runs sampled)257๐ json-pack CborDecoderBase x 81,403 ops/sec ยฑ0.42% (96 runs sampled)258๐ cbor-x x 93,131 ops/sec ยฑ0.48% (99 runs sampled)259๐ cbor x 8,760 ops/sec ยฑ0.93% (95 runs sampled)260๐ json-pack MsgPackDecoderFast x 84,014 ops/sec ยฑ0.31% (96 runs sampled)261๐ msgpackr x 91,477 ops/sec ยฑ0.77% (90 runs sampled)262๐ @msgpack/msgpack x 73,089 ops/sec ยฑ0.56% (89 runs sampled)263๐ msgpack5 x 23,468 ops/sec ยฑ0.72% (97 runs sampled)264๐ msgpack-lite x 34,630 ops/sec ยฑ0.48% (100 runs sampled)265๐ messagepack x 6,161 ops/sec ยฑ1.77% (86 runs sampled)266Fastest is ๐ JSON.parse()267------------------------------------------------------------------------- String ladder, 3398 bytes268๐ JSON.parse() x 287,387 ops/sec ยฑ0.36% (99 runs sampled)269๐ sjson.parse() x 192,836 ops/sec ยฑ0.40% (95 runs sampled)270๐ json-pack CborDecoderBase x 177,787 ops/sec ยฑ0.48% (98 runs sampled)271๐ cbor-x x 320,303 ops/sec ยฑ0.51% (94 runs sampled)272๐ cbor x 15,416 ops/sec ยฑ0.61% (94 runs sampled)273๐ json-pack MsgPackDecoderFast x 179,625 ops/sec ยฑ0.59% (100 runs sampled)274๐ msgpackr x 375,452 ops/sec ยฑ0.69% (94 runs sampled)275๐ @msgpack/msgpack x 36,544 ops/sec ยฑ0.75% (84 runs sampled)276๐ msgpack5 x 54,428 ops/sec ยฑ0.46% (98 runs sampled)277๐ msgpack-lite x 25,309 ops/sec ยฑ0.81% (75 runs sampled)278๐ messagepack x 10,117 ops/sec ยฑ3.99% (82 runs sampled)279Fastest is ๐ msgpackr280-------------------------------------------------------------------------- Long strings, 7011 bytes281๐ JSON.parse() x 117,335 ops/sec ยฑ3.32% (89 runs sampled)282๐ sjson.parse() x 103,275 ops/sec ยฑ0.64% (94 runs sampled)283๐ json-pack CborDecoderBase x 74,140 ops/sec ยฑ7.50% (81 runs sampled)284๐ cbor-x x 92,753 ops/sec ยฑ0.78% (96 runs sampled)285๐ cbor x 24,292 ops/sec ยฑ27.70% (75 runs sampled)286๐ json-pack MsgPackDecoderFast x 88,124 ops/sec ยฑ1.65% (90 runs sampled)287๐ msgpackr x 94,352 ops/sec ยฑ0.91% (94 runs sampled)288๐ @msgpack/msgpack x 33,256 ops/sec ยฑ30.68% (71 runs sampled)289๐ msgpack5 x 68,367 ops/sec ยฑ0.70% (95 runs sampled)290๐ msgpack-lite x 14,764 ops/sec ยฑ2.04% (63 runs sampled)291๐ messagepack x 17,522 ops/sec ยฑ28.57% (66 runs sampled)292Fastest is ๐ JSON.parse()293-------------------------------------------------------------------------- Short strings, 170 bytes294๐ JSON.parse() x 1,077,084 ops/sec ยฑ6.88% (77 runs sampled)295๐ sjson.parse() x 837,130 ops/sec ยฑ2.70% (80 runs sampled)296๐ json-pack CborDecoderBase x 698,901 ops/sec ยฑ4.69% (88 runs sampled)297๐ cbor-x x 1,182,303 ops/sec ยฑ0.39% (94 runs sampled)298๐ cbor x 26,810 ops/sec ยฑ14.70% (73 runs sampled)299๐ json-pack MsgPackDecoderFast x 742,562 ops/sec ยฑ5.06% (88 runs sampled)300๐ msgpackr x 1,041,143 ops/sec ยฑ2.66% (85 runs sampled)301๐ @msgpack/msgpack x 440,652 ops/sec ยฑ1.38% (92 runs sampled)302๐ msgpack5 x 133,387 ops/sec ยฑ1.14% (96 runs sampled)303๐ msgpack-lite x 206,844 ops/sec ยฑ0.63% (97 runs sampled)304๐ messagepack x 23,818 ops/sec ยฑ2.13% (94 runs sampled)305Fastest is ๐ cbor-x,๐ JSON.parse()306-------------------------------------------------------------------------------- Numbers, 136 bytes307๐ JSON.parse() x 1,747,460 ops/sec ยฑ0.61% (95 runs sampled)308๐ sjson.parse() x 1,553,635 ops/sec ยฑ1.04% (93 runs sampled)309๐ json-pack CborDecoderBase x 2,289,002 ops/sec ยฑ0.93% (87 runs sampled)310๐ cbor-x x 3,775,727 ops/sec ยฑ2.86% (82 runs sampled)311๐ cbor x 77,650 ops/sec ยฑ4.32% (83 runs sampled)312๐ json-pack MsgPackDecoderFast x 2,287,682 ops/sec ยฑ1.54% (80 runs sampled)313๐ msgpackr x 3,391,489 ops/sec ยฑ0.59% (80 runs sampled)314๐ @msgpack/msgpack x 2,297,255 ops/sec ยฑ1.54% (78 runs sampled)315๐ msgpack5 x 112,373 ops/sec ยฑ1.19% (91 runs sampled)316๐ msgpack-lite x 1,378,387 ops/sec ยฑ0.84% (95 runs sampled)317๐ messagepack x 1,174,740 ops/sec ยฑ0.97% (89 runs sampled)318Fastest is ๐ cbor-x319--------------------------------------------------------------------------------- Tokens, 308 bytes320๐ JSON.parse() x 1,303,300 ops/sec ยฑ2.26% (92 runs sampled)321๐ sjson.parse() x 1,091,921 ops/sec ยฑ2.85% (86 runs sampled)322๐ json-pack CborDecoderBase x 1,203,319 ops/sec ยฑ2.12% (90 runs sampled)323๐ cbor-x x 1,787,591 ops/sec ยฑ2.94% (74 runs sampled)324๐ cbor x 45,127 ops/sec ยฑ24.11% (64 runs sampled)325๐ json-pack MsgPackDecoderFast x 1,283,322 ops/sec ยฑ1.93% (94 runs sampled)326๐ msgpackr x 1,890,533 ops/sec ยฑ2.66% (90 runs sampled)327๐ @msgpack/msgpack x 1,364,025 ops/sec ยฑ3.78% (67 runs sampled)328๐ msgpack5 x 117,205 ops/sec ยฑ2.72% (90 runs sampled)329๐ msgpack-lite x 1,316,133 ops/sec ยฑ0.74% (99 runs sampled)330๐ messagepack x 733,566 ops/sec ยฑ1.55% (87 runs sampled)331Fastest is ๐ msgpackr332```333 334Encoder comparison:335 336```337npx ts-node benchmarks/json-pack/bench.encoders.ts338=============================================================================== Benchmark: Encoding339Warmup: 1000x , Node.js: v20.2.0 , Arch: arm64 , CPU: Apple M1 Max340---------------------------------------------------------------------------- Small object, 44 bytes341๐ CborEncoderFast x 6,319,117 ops/sec ยฑ0.11% (101 runs sampled)342๐ CborEncoder x 6,001,443 ops/sec ยฑ0.15% (101 runs sampled)343๐ MsgPackEncoderFast x 6,047,466 ops/sec ยฑ0.20% (99 runs sampled)344๐ MsgPackEncoder x 5,493,093 ops/sec ยฑ0.10% (101 runs sampled)345๐ JsonEncoder x 6,018,890 ops/sec ยฑ0.11% (97 runs sampled)346๐ UbjsonEncoder x 6,545,118 ops/sec ยฑ0.10% (97 runs sampled)347๐ IonEncoderFast x 1,032,434 ops/sec ยฑ0.14% (99 runs sampled)348๐ Buffer.from(JSON.stringify()) x 2,300,069 ops/sec ยฑ0.15% (100 runs sampled)349Fastest is ๐ UbjsonEncoder350------------------------------------------------------------------------- Typical object, 993 bytes351๐ CborEncoderFast x 460,125 ops/sec ยฑ0.14% (98 runs sampled)352๐ CborEncoder x 439,506 ops/sec ยฑ0.18% (98 runs sampled)353๐ MsgPackEncoderFast x 458,530 ops/sec ยฑ0.15% (99 runs sampled)354๐ MsgPackEncoder x 449,540 ops/sec ยฑ0.16% (100 runs sampled)355๐ JsonEncoder x 303,410 ops/sec ยฑ0.12% (101 runs sampled)356๐ UbjsonEncoder x 479,450 ops/sec ยฑ0.13% (99 runs sampled)357๐ IonEncoderFast x 68,000 ops/sec ยฑ0.11% (102 runs sampled)358๐ Buffer.from(JSON.stringify()) x 207,747 ops/sec ยฑ0.11% (98 runs sampled)359Fastest is ๐ UbjsonEncoder360-------------------------------------------------------------------------- Large object, 3741 bytes361๐ CborEncoderFast x 133,608 ops/sec ยฑ0.15% (100 runs sampled)362๐ CborEncoder x 128,019 ops/sec ยฑ0.13% (97 runs sampled)363๐ MsgPackEncoderFast x 133,863 ops/sec ยฑ0.14% (99 runs sampled)364๐ MsgPackEncoder x 131,521 ops/sec ยฑ0.18% (99 runs sampled)365๐ JsonEncoder x 93,018 ops/sec ยฑ0.13% (98 runs sampled)366๐ UbjsonEncoder x 140,969 ops/sec ยฑ0.15% (101 runs sampled)367๐ IonEncoderFast x 11,523 ops/sec ยฑ0.15% (101 runs sampled)368๐ Buffer.from(JSON.stringify()) x 63,389 ops/sec ยฑ0.13% (101 runs sampled)369Fastest is ๐ UbjsonEncoder370-------------------------------------------------------------------- Very large object, 45750 bytes371๐ CborEncoderFast x 5,790 ops/sec ยฑ0.15% (100 runs sampled)372๐ CborEncoder x 5,579 ops/sec ยฑ0.14% (100 runs sampled)373๐ MsgPackEncoderFast x 6,005 ops/sec ยฑ0.13% (100 runs sampled)374๐ MsgPackEncoder x 5,670 ops/sec ยฑ0.18% (99 runs sampled)375๐ JsonEncoder x 6,351 ops/sec ยฑ0.16% (101 runs sampled)376๐ UbjsonEncoder x 6,248 ops/sec ยฑ0.18% (99 runs sampled)377๐ IonEncoderFast x 1,868 ops/sec ยฑ0.21% (98 runs sampled)378๐ Buffer.from(JSON.stringify()) x 7,240 ops/sec ยฑ0.19% (99 runs sampled)379Fastest is ๐ Buffer.from(JSON.stringify())380------------------------------------------------------------------ Object with many keys, 969 bytes381๐ CborEncoderFast x 283,371 ops/sec ยฑ0.18% (99 runs sampled)382๐ CborEncoder x 268,056 ops/sec ยฑ0.17% (96 runs sampled)383๐ MsgPackEncoderFast x 285,224 ops/sec ยฑ0.17% (96 runs sampled)384๐ MsgPackEncoder x 272,416 ops/sec ยฑ0.21% (98 runs sampled)385๐ JsonEncoder x 234,921 ops/sec ยฑ0.21% (98 runs sampled)386๐ UbjsonEncoder x 292,228 ops/sec ยฑ0.19% (95 runs sampled)387๐ IonEncoderFast x 63,456 ops/sec ยฑ0.14% (98 runs sampled)388๐ Buffer.from(JSON.stringify()) x 175,341 ops/sec ยฑ0.86% (93 runs sampled)389Fastest is ๐ UbjsonEncoder390------------------------------------------------------------------------- String ladder, 3398 bytes391๐ CborEncoderFast x 280,167 ops/sec ยฑ0.20% (100 runs sampled)392๐ CborEncoder x 283,404 ops/sec ยฑ0.20% (97 runs sampled)393๐ MsgPackEncoderFast x 272,800 ops/sec ยฑ0.18% (99 runs sampled)394๐ MsgPackEncoder x 283,433 ops/sec ยฑ0.23% (98 runs sampled)395๐ JsonEncoder x 147,390 ops/sec ยฑ0.16% (98 runs sampled)396๐ UbjsonEncoder x 290,624 ops/sec ยฑ0.21% (98 runs sampled)397๐ IonEncoderFast x 25,452 ops/sec ยฑ0.17% (101 runs sampled)398๐ Buffer.from(JSON.stringify()) x 145,352 ops/sec ยฑ0.23% (99 runs sampled)399Fastest is ๐ UbjsonEncoder400-------------------------------------------------------------------------- Long strings, 7011 bytes401๐ CborEncoderFast x 394,386 ops/sec ยฑ0.53% (95 runs sampled)402๐ CborEncoder x 394,442 ops/sec ยฑ0.49% (94 runs sampled)403๐ MsgPackEncoderFast x 386,894 ops/sec ยฑ0.54% (95 runs sampled)404๐ MsgPackEncoder x 394,019 ops/sec ยฑ0.50% (95 runs sampled)405๐ JsonEncoder x 50,781 ops/sec ยฑ0.13% (97 runs sampled)406๐ UbjsonEncoder x 396,184 ops/sec ยฑ0.57% (95 runs sampled)407๐ IonEncoderFast x 11,799 ops/sec ยฑ0.22% (99 runs sampled)408๐ Buffer.from(JSON.stringify()) x 28,742 ops/sec ยฑ0.11% (102 runs sampled)409Fastest is ๐ UbjsonEncoder,๐ CborEncoder,๐ CborEncoderFast,๐ MsgPackEncoder410-------------------------------------------------------------------------- Short strings, 170 bytes411๐ CborEncoderFast x 1,816,742 ops/sec ยฑ0.16% (100 runs sampled)412๐ CborEncoder x 1,831,503 ops/sec ยฑ0.22% (97 runs sampled)413๐ MsgPackEncoderFast x 1,641,743 ops/sec ยฑ0.17% (101 runs sampled)414๐ MsgPackEncoder x 1,694,803 ops/sec ยฑ0.17% (97 runs sampled)415๐ JsonEncoder x 1,595,041 ops/sec ยฑ0.12% (99 runs sampled)416๐ UbjsonEncoder x 1,779,112 ops/sec ยฑ0.24% (98 runs sampled)417๐ IonEncoderFast x 422,031 ops/sec ยฑ0.10% (101 runs sampled)418๐ Buffer.from(JSON.stringify()) x 1,001,976 ops/sec ยฑ0.24% (98 runs sampled)419Fastest is ๐ CborEncoder420-------------------------------------------------------------------------------- Numbers, 136 bytes421๐ CborEncoderFast x 2,822,683 ops/sec ยฑ0.14% (99 runs sampled)422๐ CborEncoder x 3,111,311 ops/sec ยฑ0.20% (97 runs sampled)423๐ MsgPackEncoderFast x 2,918,971 ops/sec ยฑ0.14% (100 runs sampled)424๐ MsgPackEncoder x 2,862,193 ops/sec ยฑ0.13% (100 runs sampled)425๐ JsonEncoder x 1,706,584 ops/sec ยฑ0.18% (96 runs sampled)426๐ UbjsonEncoder x 3,238,810 ops/sec ยฑ0.15% (97 runs sampled)427๐ IonEncoderFast x 545,885 ops/sec ยฑ0.16% (98 runs sampled)428๐ Buffer.from(JSON.stringify()) x 1,216,907 ops/sec ยฑ0.20% (98 runs sampled)429Fastest is ๐ UbjsonEncoder430--------------------------------------------------------------------------------- Tokens, 308 bytes431๐ CborEncoderFast x 1,360,976 ops/sec ยฑ0.20% (96 runs sampled)432๐ CborEncoder x 1,367,625 ops/sec ยฑ0.16% (101 runs sampled)433๐ MsgPackEncoderFast x 1,753,202 ops/sec ยฑ0.19% (99 runs sampled)434๐ MsgPackEncoder x 1,733,298 ops/sec ยฑ0.16% (100 runs sampled)435๐ JsonEncoder x 1,411,382 ops/sec ยฑ0.27% (98 runs sampled)436๐ UbjsonEncoder x 1,734,304 ops/sec ยฑ0.17% (101 runs sampled)437๐ IonEncoderFast x 369,161 ops/sec ยฑ0.21% (97 runs sampled)438๐ Buffer.from(JSON.stringify()) x 1,092,623 ops/sec ยฑ0.15% (101 runs sampled)439Fastest is ๐ MsgPackEncoderFast440```441 442 443### Shallow reading444 445```446node benchmarks/json-pack/bench.shallow-read.js447=============================================================================== Benchmark: Encoding448Warmup: 10000x , Node.js: v16.14.2 , Arch: arm64 , CPU: Apple M1449------------------------------------------------------------------------- Typical object, 993 bytes450๐ JSON.parse() x 314,451 ops/sec ยฑ0.24% (94 runs sampled)451๐ msgpackr x 332,628 ops/sec ยฑ0.09% (99 runs sampled)452๐ cbor-x x 326,509 ops/sec ยฑ0.05% (101 runs sampled)453๐ MsgPackDecoder x 368,088 ops/sec ยฑ0.15% (100 runs sampled)454๐ CborDecoder x 327,286 ops/sec ยฑ0.15% (101 runs sampled)455๐ MsgPackDecoder.{findKey,findIndex}() x 1,815,090 ops/sec ยฑ0.07% (99 runs sampled)456๐ MsgPackDecoder.find() x 1,797,098 ops/sec ยฑ0.15% (98 runs sampled)457๐ genShallowReader()(MsgPackDecoder) x 2,085,260 ops/sec ยฑ0.19% (99 runs sampled)458Fastest is ๐ genShallowReader()(MsgPackDecoder)459```460 