From 1e16273a16c55de8ac381b1a7a29e636d9cf6368 Mon Sep 17 00:00:00 2001 From: Cai Bear Date: Wed, 28 Feb 2024 14:53:01 -0800 Subject: [PATCH] Remove intermediate README.md changes --- README.md | 546 +++++++++++++++++++++++++++--------------------------- 1 file changed, 273 insertions(+), 273 deletions(-) diff --git a/README.md b/README.md index dd50ce5..bd35504 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Zero-copy deserialization libraries have an additional set of benchmarks: Some benchmark results may be italicized and followed by an asterisk. Mouse over these for more details on what situation was benchmarked. Other footnotes are located at the bottom. -## Last updated: 2024-2-22 22:34:37 +## Last updated: 2024-2-6 17:59:10 ## `log` @@ -46,45 +46,45 @@ For operations, time per iteration; for size, bytes. Lower is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 411.01 µs | *1.4565 ms\** | 1705800 | 519588 | 412910 | -| [alkahest 0.1.5][alkahest] | 197.27 µs | † | 1045784 | 454157 | 389424 | -| [bincode 2.0.0-rc][bincode] | 209.67 µs | 2.4296 ms | 741295 | 303944 | 257153 | -| [bincode 1.3.3][bincode1] | 522.13 µs | 1.9889 ms | 1045784 | 373127 | 311761 | -| [bitcode 0.6.0][bitcode] | 145.10 µs | 1.4437 ms | 703715 | 288827 | 229804 | -| [borsh 1.3.0][borsh] | 541.77 µs | 2.1543 ms | 885780 | 362204 | 286514 | -| [bson 2.9.0][bson] | 2.2017 ms | 7.4528 ms | 1924682 | 532821 | 376270 | -| [capnp 0.18.13][capnp] | 745.82 µs | † | 1443216 | 513986 | 428649 | -| [cbor4ii 0.3.2][cbor4ii] | 904.98 µs | 5.0319 ms | 1407835 | 403440 | 324081 | -| [ciborium 0.2.2][ciborium] | 3.9051 ms | 10.784 ms | 1407835 | 403440 | 324081 | -| [databuf 0.5.0][databuf] | 272.74 µs | 2.0220 ms | 765778 | 311715 | 264630 | -| [dlhn 0.1.6][dlhn] | 789.74 µs | 2.4125 ms | 724953 | 301446 | 253629 | -| [flatbuffers 23.5.26][flatbuffers] | 1.3883 ms | † | 1276368 | 468539 | 388832 | -| [msgpacker 0.4.3][msgpacker] | 1.1675 ms | 2.5357 ms | 764996 | 315291 | 264898 | -| [nachricht-serde 0.4.0][nachricht-serde] | 5.4301 ms | 4.1529 ms | 818669 | 332556 | 285514 | -| [nanoserde 0.1.37][nanoserde] | 254.00 µs | 2.0513 ms | 1045784 | 373127 | 311761 | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 653.57 µs | 2.2298 ms | 765778 | 311743 | 264518 | -| [postcard 1.0.8][postcard] | 416.84 µs | 2.1807 ms | 724953 | 302399 | 253747 | -| [pot 3.0.0][pot] | 2.3574 ms | 6.5066 ms | 971922 | 372513 | 304122 | -| [prost 0.12.3][prost] | *802.91 µs\** *2.3397 ms\** | 3.4954 ms | 884628 | 363130 | 315494 | -| [rkyv 0.7.44][rkyv] | 217.39 µs | *1.4457 ms\** *1.9934 ms\** | 1011488 | 383862 | 333545 | -| [rmp-serde 1.1.2][rmp-serde] | 1.3948 ms | 3.5021 ms | 784997 | 325384 | 278219 | -| [ron 0.8.1][ron] | 14.772 ms | 15.912 ms | 1607459 | 449158 | 349713 | -| [savefile 0.16.5][savefile] | 204.34 µs | 2.0689 ms | 1045800 | 373139 | 311755 | -| [serde_bare 0.5.0][serde_bare] | 655.76 µs | 2.1066 ms | 765778 | 311715 | 264630 | -| [serde_cbor 0.11.2][serde_cbor] | 1.9490 ms | 5.0221 ms | 1407835 | 403440 | 324081 | -| [serde_json 1.0.114][serde_json] | 3.8468 ms | 5.6240 ms | 1827461 | 470560 | 361090 | -| [simd-json 0.13.8][simd-json] | 2.1389 ms | 5.0039 ms | 1827461 | 470560 | 361090 | -| [speedy 0.8.7][speedy] | 196.93 µs | 1.7488 ms | 885780 | 362204 | 286514 | +| [abomonation 0.7.3][abomonation] | 412.49 µs | *1.4634 ms\** | 1705800 | 520079 | 413624 | +| [alkahest 0.1.5][alkahest] | 198.75 µs | † | 1045784 | 454157 | 389424 | +| [bincode 2.0.0-rc][bincode] | 204.01 µs | 2.4683 ms | 741295 | 303944 | 257153 | +| [bincode 1.3.3][bincode1] | 522.15 µs | 2.0239 ms | 1045784 | 373127 | 311761 | +| [bitcode 0.5.0][bitcode] | 369.60 µs | 2.2337 ms | 703664 | 317711 | 273622 | +| [borsh 1.3.0][borsh] | 544.23 µs | 2.2206 ms | 885780 | 362204 | 286514 | +| [bson 2.9.0][bson] | 2.2234 ms | 7.0106 ms | 1924682 | 532821 | 376270 | +| [capnp 0.18.13][capnp] | 590.96 µs | † | 1443216 | 513986 | 428649 | +| [cbor4ii 0.3.2][cbor4ii] | 905.01 µs | 4.9817 ms | 1407835 | 403440 | 324081 | +| [ciborium 0.2.2][ciborium] | 3.8698 ms | 10.150 ms | 1407835 | 403440 | 324081 | +| [databuf 0.5.0][databuf] | 255.70 µs | 2.0341 ms | 765778 | 311715 | 264630 | +| [dlhn 0.1.6][dlhn] | 635.22 µs | 2.4176 ms | 724953 | 301446 | 253629 | +| [flatbuffers 23.5.26][flatbuffers] | 1.3477 ms | † | 1276368 | 468539 | 388832 | +| [msgpacker 0.4.3][msgpacker] | 1.1960 ms | 2.5583 ms | 764996 | 315291 | 264898 | +| [nachricht-serde 0.4.0][nachricht-serde] | 5.9543 ms | 4.1778 ms | 818669 | 332556 | 285514 | +| [nanoserde 0.1.37][nanoserde] | 253.61 µs | 2.0668 ms | 1045784 | 373127 | 311761 | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 674.76 µs | 2.2274 ms | 765778 | 311743 | 264518 | +| [postcard 1.0.8][postcard] | 435.20 µs | 2.1404 ms | 724953 | 302399 | 253747 | +| [pot 3.0.0][pot] | 2.4076 ms | 6.6797 ms | 971922 | 372513 | 304122 | +| [prost 0.12.3][prost] | *823.29 µs\** *2.3389 ms\** | 3.4769 ms | 884628 | 363130 | 315494 | +| [rkyv 0.7.44][rkyv] | 214.04 µs | *1.4452 ms\** *1.9704 ms\** | 1011488 | 383862 | 333545 | +| [rmp-serde 1.1.2][rmp-serde] | 1.3825 ms | 3.5453 ms | 784997 | 325384 | 278219 | +| [ron 0.8.1][ron] | 14.135 ms | 16.409 ms | 1607459 | 449158 | 349713 | +| [savefile 0.16.5][savefile] | 202.44 µs | 2.0934 ms | 1045800 | 373139 | 311755 | +| [serde_bare 0.5.0][serde_bare] | 668.53 µs | 2.1683 ms | 765778 | 311715 | 264630 | +| [serde_cbor 0.11.2][serde_cbor] | 2.0089 ms | 4.8453 ms | 1407835 | 403440 | 324081 | +| [serde_json 1.0.113][serde_json] | 3.6966 ms | 5.6882 ms | 1827461 | 470560 | 361090 | +| [simd-json 0.13.8][simd-json] | 2.0944 ms | 5.2013 ms | 1827461 | 470560 | 361090 | +| [speedy 0.8.7][speedy] | 194.13 µs | 1.7587 ms | 885780 | 362204 | 286514 | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *22.123 µs\** | *37.656 µs\** | ‡ | -| [alkahest 0.1.5][alkahest] | *1.8558 ns\** | *24.792 µs\** | ‡ | -| [capnp 0.18.13][capnp] | *74.441 ns\** | *168.36 µs\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *2.4732 ns\** *1.8498 ms\** | *48.731 µs\** *1.9159 ms\** | ‡ | -| [rkyv 0.7.44][rkyv] | *1.2367 ns\** *536.21 µs\** | *10.716 µs\** *551.07 µs\** | 9.8891 µs | +| [abomonation 0.7.3][abomonation] | *22.905 µs\** | *40.941 µs\** | ‡ | +| [alkahest 0.1.5][alkahest] | *1.8559 ns\** | *24.864 µs\** | ‡ | +| [capnp 0.18.13][capnp] | *76.284 ns\** | *169.43 µs\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *2.4801 ns\** *1.8466 ms\** | *50.811 µs\** *1.9148 ms\** | ‡ | +| [rkyv 0.7.44][rkyv] | *1.2402 ns\** *515.53 µs\** | *10.545 µs\** *526.20 µs\** | 9.6463 µs | ### Comparison @@ -94,45 +94,45 @@ Relative to best. Higher is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 35.30% | *99.12%\** | 41.25% | 55.59% | 55.65% | -| [alkahest 0.1.5][alkahest] | 73.55% | † | 67.29% | 63.60% | 59.01% | -| [bincode 2.0.0-rc][bincode] | 69.20% | 59.42% | 94.93% | 95.03% | 89.36% | -| [bincode 1.3.3][bincode1] | 27.79% | 72.59% | 67.29% | 77.41% | 73.71% | -| [bitcode 0.6.0][bitcode] | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | -| [borsh 1.3.0][borsh] | 26.78% | 67.01% | 79.45% | 79.74% | 80.21% | -| [bson 2.9.0][bson] | 6.59% | 19.37% | 36.56% | 54.21% | 61.07% | -| [capnp 0.18.13][capnp] | 19.46% | † | 48.76% | 56.19% | 53.61% | -| [cbor4ii 0.3.2][cbor4ii] | 16.03% | 28.69% | 49.99% | 71.59% | 70.91% | -| [ciborium 0.2.2][ciborium] | 3.72% | 13.39% | 49.99% | 71.59% | 70.91% | -| [databuf 0.5.0][databuf] | 53.20% | 71.40% | 91.90% | 92.66% | 86.84% | -| [dlhn 0.1.6][dlhn] | 18.37% | 59.84% | 97.07% | 95.81% | 90.61% | -| [flatbuffers 23.5.26][flatbuffers] | 10.45% | † | 55.13% | 61.64% | 59.10% | -| [msgpacker 0.4.3][msgpacker] | 12.43% | 56.93% | 91.99% | 91.61% | 86.75% | -| [nachricht-serde 0.4.0][nachricht-serde] | 2.67% | 34.76% | 85.96% | 86.85% | 80.49% | -| [nanoserde 0.1.37][nanoserde] | 57.13% | 70.38% | 67.29% | 77.41% | 73.71% | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 22.20% | 64.75% | 91.90% | 92.65% | 86.88% | -| [postcard 1.0.8][postcard] | 34.81% | 66.20% | 97.07% | 95.51% | 90.56% | -| [pot 3.0.0][pot] | 6.16% | 22.19% | 72.40% | 77.53% | 75.56% | -| [prost 0.12.3][prost] | *18.07%\** *6.20%\** | 41.30% | 79.55% | 79.54% | 72.84% | -| [rkyv 0.7.44][rkyv] | 66.75% | *99.86%\** *72.42%\** | 69.57% | 75.24% | 68.90% | -| [rmp-serde 1.1.2][rmp-serde] | 10.40% | 41.22% | 89.65% | 88.76% | 82.60% | -| [ron 0.8.1][ron] | 0.98% | 9.07% | 43.78% | 64.30% | 65.71% | -| [savefile 0.16.5][savefile] | 71.01% | 69.78% | 67.29% | 77.40% | 73.71% | -| [serde_bare 0.5.0][serde_bare] | 22.13% | 68.53% | 91.90% | 92.66% | 86.84% | -| [serde_cbor 0.11.2][serde_cbor] | 7.44% | 28.75% | 49.99% | 71.59% | 70.91% | -| [serde_json 1.0.114][serde_json] | 3.77% | 25.67% | 38.51% | 61.38% | 63.64% | -| [simd-json 0.13.8][simd-json] | 6.78% | 28.85% | 38.51% | 61.38% | 63.64% | -| [speedy 0.8.7][speedy] | 73.68% | 82.55% | 79.45% | 79.74% | 80.21% | +| [abomonation 0.7.3][abomonation] | 47.06% | *98.76%\** | 41.25% | 57.96% | 61.32% | +| [alkahest 0.1.5][alkahest] | 97.68% | † | 67.29% | 66.37% | 65.13% | +| [bincode 2.0.0-rc][bincode] | 95.16% | 58.55% | 94.92% | 99.18% | 98.63% | +| [bincode 1.3.3][bincode1] | 37.18% | 71.41% | 67.29% | 80.79% | 81.35% | +| [bitcode 0.5.0][bitcode] | 52.52% | 64.70% | 100.00% | 94.88% | 92.69% | +| [borsh 1.3.0][borsh] | 35.67% | 65.08% | 79.44% | 83.23% | 88.52% | +| [bson 2.9.0][bson] | 8.73% | 20.61% | 36.56% | 56.58% | 67.41% | +| [capnp 0.18.13][capnp] | 32.85% | † | 48.76% | 58.65% | 59.17% | +| [cbor4ii 0.3.2][cbor4ii] | 21.45% | 29.01% | 49.98% | 74.72% | 78.26% | +| [ciborium 0.2.2][ciborium] | 5.02% | 14.24% | 49.98% | 74.72% | 78.26% | +| [databuf 0.5.0][databuf] | 75.92% | 71.05% | 91.89% | 96.71% | 95.84% | +| [dlhn 0.1.6][dlhn] | 30.56% | 59.78% | 97.06% | 100.00% | 100.00% | +| [flatbuffers 23.5.26][flatbuffers] | 14.40% | † | 55.13% | 64.34% | 65.23% | +| [msgpacker 0.4.3][msgpacker] | 16.23% | 56.49% | 91.98% | 95.61% | 95.75% | +| [nachricht-serde 0.4.0][nachricht-serde] | 3.26% | 34.59% | 85.95% | 90.65% | 88.83% | +| [nanoserde 0.1.37][nanoserde] | 76.55% | 69.92% | 67.29% | 80.79% | 81.35% | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 28.77% | 64.88% | 91.89% | 96.70% | 95.88% | +| [postcard 1.0.8][postcard] | 44.61% | 67.52% | 97.06% | 99.68% | 99.95% | +| [pot 3.0.0][pot] | 8.06% | 21.64% | 72.40% | 80.92% | 83.40% | +| [prost 0.12.3][prost] | *23.58%\** *8.30%\** | 41.57% | 79.54% | 83.01% | 80.39% | +| [rkyv 0.7.44][rkyv] | 90.70% | *100.00%\** *73.35%\** | 69.57% | 78.53% | 76.04% | +| [rmp-serde 1.1.2][rmp-serde] | 14.04% | 40.76% | 89.64% | 92.64% | 91.16% | +| [ron 0.8.1][ron] | 1.37% | 8.81% | 43.77% | 67.11% | 72.52% | +| [savefile 0.16.5][savefile] | 95.90% | 69.04% | 67.28% | 80.79% | 81.36% | +| [serde_bare 0.5.0][serde_bare] | 29.04% | 66.65% | 91.89% | 96.71% | 95.84% | +| [serde_cbor 0.11.2][serde_cbor] | 9.66% | 29.83% | 49.98% | 74.72% | 78.26% | +| [serde_json 1.0.113][serde_json] | 5.25% | 25.41% | 38.51% | 64.06% | 70.24% | +| [simd-json 0.13.8][simd-json] | 9.27% | 27.79% | 38.51% | 64.06% | 70.24% | +| [speedy 0.8.7][speedy] | 100.00% | 82.17% | 79.44% | 83.23% | 88.52% | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *0.01%\** | *28.46%\** | ‡ | -| [alkahest 0.1.5][alkahest] | *66.64%\** | *43.22%\** | ‡ | -| [capnp 0.18.13][capnp] | *1.66%\** | *6.36%\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *50.00%\** *0.00%\** | *21.99%\** *0.56%\** | ‡ | -| [rkyv 0.7.44][rkyv] | *100.00%\** *0.00%\** | *100.00%\** *1.94%\** | 100.00% | +| [abomonation 0.7.3][abomonation] | *0.01%\** | *25.76%\** | ‡ | +| [alkahest 0.1.5][alkahest] | *66.82%\** | *42.41%\** | ‡ | +| [capnp 0.18.13][capnp] | *1.63%\** | *6.22%\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *50.01%\** *0.00%\** | *20.75%\** *0.55%\** | ‡ | +| [rkyv 0.7.44][rkyv] | *100.00%\** *0.00%\** | *100.00%\** *2.00%\** | 100.00% | ## `mesh` @@ -146,45 +146,45 @@ For operations, time per iteration; for size, bytes. Lower is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 259.54 µs | *258.72 µs\** | 6000024 | 5378513 | 5345890 | -| [alkahest 0.1.5][alkahest] | 157.99 µs | † | 6000008 | 5378500 | 5345890 | -| [bincode 2.0.0-rc][bincode] | 425.11 µs | 819.91 µs | 6000005 | 5378497 | 5345897 | -| [bincode 1.3.3][bincode1] | 5.1294 ms | 4.5163 ms | 6000008 | 5378500 | 5345890 | -| [bitcode 0.6.0][bitcode] | 1.3996 ms | 596.35 µs | 6000009 | 5182295 | 4923776 | -| [borsh 1.3.0][borsh] | 6.1434 ms | 4.6115 ms | 6000004 | 5378496 | 5345889 | -| [bson 2.9.0][bson] | 45.283 ms | 78.966 ms | 23013911 | 9212089 | 7497811 | -| [capnp 0.18.13][capnp] | 5.4437 ms | † | 14000088 | 7130367 | 6051062 | -| [cbor4ii 0.3.2][cbor4ii] | 10.342 ms | 47.567 ms | 13125016 | 7524114 | 6757967 | -| [ciborium 0.2.2][ciborium] | 66.116 ms | 106.87 ms | 13122324 | 7524660 | 6759658 | -| [databuf 0.5.0][databuf] | 2.4001 ms | 5.3123 ms | 6000003 | 5378495 | 5345900 | -| [dlhn 0.1.6][dlhn] | 7.1862 ms | 5.6943 ms | 6000003 | 5378495 | 5345900 | -| [flatbuffers 23.5.26][flatbuffers] | 648.73 µs | † | 6000024 | 5378434 | 5345910 | -| [msgpacker 0.4.3][msgpacker] | 20.031 ms | 9.2680 ms | 7500005 | 6058442 | 6014337 | -| [nachricht-serde 0.4.0][nachricht-serde] | 122.35 ms | 27.144 ms | 8125037 | 6493484 | 6386940 | -| [nanoserde 0.1.37][nanoserde] | 1.6009 ms | 898.83 µs | 6000008 | 5378500 | 5345890 | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 5.0771 ms | 4.0400 ms | 6000004 | 5378496 | 5345889 | -| [postcard 1.0.8][postcard] | 488.30 µs | 1.2696 ms | 6000003 | 5378495 | 5345900 | -| [pot 3.0.0][pot] | 39.683 ms | 74.635 ms | 10122342 | 6814618 | 6852251 | -| [prost 0.12.3][prost] | *6.9470 ms\** *8.1173 ms\** | 13.559 ms | 8750000 | 6665735 | 6421871 | -| [rkyv 0.7.44][rkyv] | 186.60 µs | *156.28 µs\** *197.93 µs\** | 6000008 | 5378500 | 5345892 | -| [rmp-serde 1.1.2][rmp-serde] | 13.411 ms | 18.723 ms | 8125006 | 6494876 | 6391037 | -| [ron 0.8.1][ron] | 174.16 ms | 249.55 ms | 22192885 | 8970395 | 8138755 | -| [savefile 0.16.5][savefile] | 259.61 µs | 260.06 µs | 6000024 | 5378518 | 5345893 | -| [serde_bare 0.5.0][serde_bare] | 6.4701 ms | 4.5644 ms | 6000003 | 5378495 | 5345900 | -| [serde_cbor 0.11.2][serde_cbor] | 35.074 ms | 46.545 ms | 13122324 | 7524660 | 6759658 | -| [serde_json 1.0.114][serde_json] | 86.744 ms | 73.084 ms | 26192883 | 9566084 | 8586741 | -| [simd-json 0.13.8][simd-json] | 53.751 ms | 72.608 ms | 26192883 | 9566084 | 8586741 | -| [speedy 0.8.7][speedy] | 259.50 µs | 258.78 µs | 6000004 | 5378496 | 5345889 | +| [abomonation 0.7.3][abomonation] | 238.97 µs | *237.45 µs\** | 6000024 | 5378513 | 5345890 | +| [alkahest 0.1.5][alkahest] | 198.11 µs | † | 6000008 | 5378500 | 5345890 | +| [bincode 2.0.0-rc][bincode] | 421.98 µs | 823.88 µs | 6000005 | 5378497 | 5345897 | +| [bincode 1.3.3][bincode1] | 4.7801 ms | 4.0723 ms | 6000008 | 5378500 | 5345890 | +| [bitcode 0.5.0][bitcode] | 3.3469 ms | 6.1142 ms | 4688054 | 4688491 | 4688168 | +| [borsh 1.3.0][borsh] | 5.9735 ms | 4.5215 ms | 6000004 | 5378496 | 5345889 | +| [bson 2.9.0][bson] | 41.847 ms | 82.314 ms | 23013911 | 9212089 | 7497811 | +| [capnp 0.18.13][capnp] | 5.3081 ms | † | 14000088 | 7130367 | 6051062 | +| [cbor4ii 0.3.2][cbor4ii] | 10.611 ms | 47.404 ms | 13125016 | 7524114 | 6757967 | +| [ciborium 0.2.2][ciborium] | 65.319 ms | 104.71 ms | 13122324 | 7524660 | 6759658 | +| [databuf 0.5.0][databuf] | 2.4066 ms | 5.3143 ms | 6000003 | 5378495 | 5345900 | +| [dlhn 0.1.6][dlhn] | 6.1386 ms | 6.3852 ms | 6000003 | 5378495 | 5345900 | +| [flatbuffers 23.5.26][flatbuffers] | 645.52 µs | † | 6000024 | 5378434 | 5345910 | +| [msgpacker 0.4.3][msgpacker] | 19.561 ms | 9.6388 ms | 7500005 | 6058442 | 6014337 | +| [nachricht-serde 0.4.0][nachricht-serde] | 125.33 ms | 26.799 ms | 8125037 | 6493484 | 6386940 | +| [nanoserde 0.1.37][nanoserde] | 1.5480 ms | 904.59 µs | 6000008 | 5378500 | 5345890 | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 4.8467 ms | 3.9677 ms | 6000004 | 5378496 | 5345889 | +| [postcard 1.0.8][postcard] | 476.28 µs | 1.4674 ms | 6000003 | 5378495 | 5345900 | +| [pot 3.0.0][pot] | 39.376 ms | 73.754 ms | 10122342 | 6814618 | 6852251 | +| [prost 0.12.3][prost] | *7.0202 ms\** *8.8683 ms\** | 13.375 ms | 8750000 | 6665735 | 6421871 | +| [rkyv 0.7.44][rkyv] | 185.47 µs | *199.46 µs\** *198.14 µs\** | 6000008 | 5378500 | 5345892 | +| [rmp-serde 1.1.2][rmp-serde] | 12.461 ms | 18.934 ms | 8125006 | 6494876 | 6391037 | +| [ron 0.8.1][ron] | 170.79 ms | 258.21 ms | 22192885 | 8970395 | 8138755 | +| [savefile 0.16.5][savefile] | 238.48 µs | 238.51 µs | 6000024 | 5378518 | 5345893 | +| [serde_bare 0.5.0][serde_bare] | 6.0994 ms | 4.9335 ms | 6000003 | 5378495 | 5345900 | +| [serde_cbor 0.11.2][serde_cbor] | 35.447 ms | 43.303 ms | 13122324 | 7524660 | 6759658 | +| [serde_json 1.0.113][serde_json] | 89.020 ms | 73.645 ms | 26192883 | 9566084 | 8586741 | +| [simd-json 0.13.8][simd-json] | 54.133 ms | 72.827 ms | 26192883 | 9566084 | 8586741 | +| [speedy 0.8.7][speedy] | 238.58 µs | 241.62 µs | 6000004 | 5378496 | 5345889 | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *2.1652 ns\** | *140.53 µs\** | ‡ | -| [alkahest 0.1.5][alkahest] | *1.8555 ns\** | *77.471 µs\** | ‡ | -| [capnp 0.18.13][capnp] | *112.32 ns\** | *2.1406 ms\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *2.4743 ns\** *37.120 ns\** | *54.096 µs\** *77.545 µs\** | ‡ | -| [rkyv 0.7.44][rkyv] | *1.2370 ns\** *6.1886 ns\** | *48.566 µs\** *38.701 µs\** | 99.869 µs | +| [abomonation 0.7.3][abomonation] | *2.1650 ns\** | *142.64 µs\** | ‡ | +| [alkahest 0.1.5][alkahest] | *1.8560 ns\** | *77.345 µs\** | ‡ | +| [capnp 0.18.13][capnp] | *109.50 ns\** | *2.1448 ms\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *2.4727 ns\** *37.138 ns\** | *54.193 µs\** *77.508 µs\** | ‡ | +| [rkyv 0.7.44][rkyv] | *1.2370 ns\** *6.2272 ns\** | *46.057 µs\** *38.735 µs\** | 109.02 µs | ### Comparison @@ -194,45 +194,45 @@ Relative to best. Higher is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 60.87% | *60.41%\** | 100.00% | 96.35% | 92.10% | -| [alkahest 0.1.5][alkahest] | 100.00% | † | 100.00% | 96.35% | 92.10% | -| [bincode 2.0.0-rc][bincode] | 37.16% | 19.06% | 100.00% | 96.35% | 92.10% | -| [bincode 1.3.3][bincode1] | 3.08% | 3.46% | 100.00% | 96.35% | 92.10% | -| [bitcode 0.6.0][bitcode] | 11.29% | 26.21% | 100.00% | 100.00% | 100.00% | -| [borsh 1.3.0][borsh] | 2.57% | 3.39% | 100.00% | 96.35% | 92.10% | -| [bson 2.9.0][bson] | 0.35% | 0.20% | 26.07% | 56.26% | 65.67% | -| [capnp 0.18.13][capnp] | 2.90% | † | 42.86% | 72.68% | 81.37% | -| [cbor4ii 0.3.2][cbor4ii] | 1.53% | 0.33% | 45.71% | 68.88% | 72.86% | -| [ciborium 0.2.2][ciborium] | 0.24% | 0.15% | 45.72% | 68.87% | 72.84% | -| [databuf 0.5.0][databuf] | 6.58% | 2.94% | 100.00% | 96.35% | 92.10% | -| [dlhn 0.1.6][dlhn] | 2.20% | 2.74% | 100.00% | 96.35% | 92.10% | -| [flatbuffers 23.5.26][flatbuffers] | 24.35% | † | 100.00% | 96.35% | 92.10% | -| [msgpacker 0.4.3][msgpacker] | 0.79% | 1.69% | 80.00% | 85.54% | 81.87% | -| [nachricht-serde 0.4.0][nachricht-serde] | 0.13% | 0.58% | 73.85% | 79.81% | 77.09% | -| [nanoserde 0.1.37][nanoserde] | 9.87% | 17.39% | 100.00% | 96.35% | 92.10% | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 3.11% | 3.87% | 100.00% | 96.35% | 92.10% | -| [postcard 1.0.8][postcard] | 32.36% | 12.31% | 100.00% | 96.35% | 92.10% | -| [pot 3.0.0][pot] | 0.40% | 0.21% | 59.27% | 76.05% | 71.86% | -| [prost 0.12.3][prost] | *2.27%\** *1.95%\** | 1.15% | 68.57% | 77.75% | 76.67% | -| [rkyv 0.7.44][rkyv] | 84.67% | *100.00%\** *78.96%\** | 100.00% | 96.35% | 92.10% | -| [rmp-serde 1.1.2][rmp-serde] | 1.18% | 0.83% | 73.85% | 79.79% | 77.04% | -| [ron 0.8.1][ron] | 0.09% | 0.06% | 27.04% | 57.77% | 60.50% | -| [savefile 0.16.5][savefile] | 60.86% | 60.09% | 100.00% | 96.35% | 92.10% | -| [serde_bare 0.5.0][serde_bare] | 2.44% | 3.42% | 100.00% | 96.35% | 92.10% | -| [serde_cbor 0.11.2][serde_cbor] | 0.45% | 0.34% | 45.72% | 68.87% | 72.84% | -| [serde_json 1.0.114][serde_json] | 0.18% | 0.21% | 22.91% | 54.17% | 57.34% | -| [simd-json 0.13.8][simd-json] | 0.29% | 0.22% | 22.91% | 54.17% | 57.34% | -| [speedy 0.8.7][speedy] | 60.88% | 60.39% | 100.00% | 96.35% | 92.10% | +| [abomonation 0.7.3][abomonation] | 77.61% | *83.44%\** | 78.13% | 87.17% | 87.70% | +| [alkahest 0.1.5][alkahest] | 93.62% | † | 78.13% | 87.17% | 87.70% | +| [bincode 2.0.0-rc][bincode] | 43.95% | 24.05% | 78.13% | 87.17% | 87.70% | +| [bincode 1.3.3][bincode1] | 3.88% | 4.87% | 78.13% | 87.17% | 87.70% | +| [bitcode 0.5.0][bitcode] | 5.54% | 3.24% | 100.00% | 100.00% | 100.00% | +| [borsh 1.3.0][borsh] | 3.10% | 4.38% | 78.13% | 87.17% | 87.70% | +| [bson 2.9.0][bson] | 0.44% | 0.24% | 20.37% | 50.89% | 62.53% | +| [capnp 0.18.13][capnp] | 3.49% | † | 33.49% | 65.75% | 77.48% | +| [cbor4ii 0.3.2][cbor4ii] | 1.75% | 0.42% | 35.72% | 62.31% | 69.37% | +| [ciborium 0.2.2][ciborium] | 0.28% | 0.19% | 35.73% | 62.31% | 69.36% | +| [databuf 0.5.0][databuf] | 7.71% | 3.73% | 78.13% | 87.17% | 87.70% | +| [dlhn 0.1.6][dlhn] | 3.02% | 3.10% | 78.13% | 87.17% | 87.70% | +| [flatbuffers 23.5.26][flatbuffers] | 28.73% | † | 78.13% | 87.17% | 87.70% | +| [msgpacker 0.4.3][msgpacker] | 0.95% | 2.06% | 62.51% | 77.39% | 77.95% | +| [nachricht-serde 0.4.0][nachricht-serde] | 0.15% | 0.74% | 57.70% | 72.20% | 73.40% | +| [nanoserde 0.1.37][nanoserde] | 11.98% | 21.90% | 78.13% | 87.17% | 87.70% | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 3.83% | 4.99% | 78.13% | 87.17% | 87.70% | +| [postcard 1.0.8][postcard] | 38.94% | 13.50% | 78.13% | 87.17% | 87.70% | +| [pot 3.0.0][pot] | 0.47% | 0.27% | 46.31% | 68.80% | 68.42% | +| [prost 0.12.3][prost] | *2.64%\** *2.09%\** | 1.48% | 53.58% | 70.34% | 73.00% | +| [rkyv 0.7.44][rkyv] | 100.00% | *99.34%\** *100.00%\** | 78.13% | 87.17% | 87.70% | +| [rmp-serde 1.1.2][rmp-serde] | 1.49% | 1.05% | 57.70% | 72.19% | 73.36% | +| [ron 0.8.1][ron] | 0.11% | 0.08% | 21.12% | 52.27% | 57.60% | +| [savefile 0.16.5][savefile] | 77.77% | 83.07% | 78.13% | 87.17% | 87.70% | +| [serde_bare 0.5.0][serde_bare] | 3.04% | 4.02% | 78.13% | 87.17% | 87.70% | +| [serde_cbor 0.11.2][serde_cbor] | 0.52% | 0.46% | 35.73% | 62.31% | 69.36% | +| [serde_json 1.0.113][serde_json] | 0.21% | 0.27% | 17.90% | 49.01% | 54.60% | +| [simd-json 0.13.8][simd-json] | 0.34% | 0.27% | 17.90% | 49.01% | 54.60% | +| [speedy 0.8.7][speedy] | 77.74% | 82.00% | 78.13% | 87.17% | 87.70% | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *57.13%\** | *27.54%\** | ‡ | -| [alkahest 0.1.5][alkahest] | *66.67%\** | *49.96%\** | ‡ | -| [capnp 0.18.13][capnp] | *1.10%\** | *1.81%\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *49.99%\** *3.33%\** | *71.54%\** *49.91%\** | ‡ | -| [rkyv 0.7.44][rkyv] | *100.00%\** *19.99%\** | *79.69%\** *100.00%\** | 100.00% | +| [abomonation 0.7.3][abomonation] | *57.14%\** | *27.16%\** | ‡ | +| [alkahest 0.1.5][alkahest] | *66.65%\** | *50.08%\** | ‡ | +| [capnp 0.18.13][capnp] | *1.13%\** | *1.81%\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *50.03%\** *3.33%\** | *71.48%\** *49.98%\** | ‡ | +| [rkyv 0.7.44][rkyv] | *100.00%\** *19.86%\** | *84.10%\** *100.00%\** | 100.00% | ## `minecraft_savedata` @@ -246,45 +246,45 @@ For operations, time per iteration; for size, bytes. Lower is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 191.76 µs | *1.3167 ms\** | 1290592 | 397059 | 340586 | -| [alkahest 0.1.5][alkahest] | 219.62 µs | † | 667570 | 325484 | 320452 | -| [bincode 2.0.0-rc][bincode] | 274.28 µs | 2.0635 ms | 367413 | 221291 | 206273 | -| [bincode 1.3.3][bincode1] | 576.52 µs | 1.8175 ms | 569975 | 240525 | 232423 | -| [bitcode 0.6.0][bitcode] | 124.45 µs | 1.2709 ms | 327693 | 200948 | 182747 | -| [borsh 1.3.0][borsh] | 551.80 µs | 1.8184 ms | 446595 | 234236 | 210008 | -| [bson 2.9.0][bson] | 2.8821 ms | 8.2377 ms | 1619653 | 502185 | 328399 | -| [capnp 0.18.13][capnp] | 481.85 µs | † | 803896 | 335606 | 280851 | -| [cbor4ii 0.3.2][cbor4ii] | 801.55 µs | 4.6010 ms | 1109831 | 344745 | 274514 | -| [ciborium 0.2.2][ciborium] | 3.7434 ms | 9.5435 ms | 1109821 | 344751 | 274526 | -| [databuf 0.5.0][databuf] | 325.32 µs | 1.7351 ms | 356311 | 213062 | 198488 | -| [dlhn 0.1.6][dlhn] | 766.24 µs | 2.5914 ms | 366496 | 220600 | 205683 | -| [flatbuffers 23.5.26][flatbuffers] | 3.3149 ms | † | 844168 | 345696 | 294015 | -| [msgpacker 0.4.3][msgpacker] | 913.34 µs | 2.8062 ms | 391251 | 236877 | 220476 | -| [nachricht-serde 0.4.0][nachricht-serde] | 5.3914 ms | 3.9113 ms | 449745 | 252432 | 231110 | -| [nanoserde 0.1.37][nanoserde] | 282.39 µs | 1.8812 ms | 567975 | 239930 | 232419 | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 651.72 µs | 1.9772 ms | 356311 | 212976 | 198524 | -| [postcard 1.0.8][postcard] | 430.40 µs | 1.9454 ms | 367489 | 221913 | 207344 | -| [pot 3.0.0][pot] | 2.2890 ms | 5.9534 ms | 599125 | 299158 | 247693 | -| [prost 0.12.3][prost] | *1.0254 ms\** *2.7100 ms\** | 3.6082 ms | 596811 | 305319 | 269310 | -| [rkyv 0.7.44][rkyv] | 298.28 µs | *1.2566 ms\** *1.7800 ms\** | 596952 | 253967 | 220706 | -| [rmp-serde 1.1.2][rmp-serde] | 1.4283 ms | 2.9538 ms | 424533 | 245214 | 226188 | -| [ron 0.8.1][ron] | 8.6725 ms | 17.127 ms | 1465223 | 434935 | 343338 | -| [savefile 0.16.5][savefile] | 219.40 µs | 1.8256 ms | 566991 | 239361 | 232010 | -| [serde_bare 0.5.0][serde_bare] | 710.22 µs | 2.2259 ms | 356311 | 213062 | 198488 | -| [serde_cbor 0.11.2][serde_cbor] | 1.7731 ms | 4.6976 ms | 1109821 | 344751 | 274526 | -| [serde_json 1.0.114][serde_json] | 3.6073 ms | 6.5143 ms | 1623191 | 466527 | 359623 | -| [simd-json 0.13.8][simd-json] | 2.2195 ms | 4.5061 ms | 1623191 | 466527 | 359623 | -| [speedy 0.8.7][speedy] | 271.01 µs | 1.6554 ms | 449595 | 234970 | 210361 | +| [abomonation 0.7.3][abomonation] | 192.02 µs | *1.3145 ms\** | 1290592 | 397021 | 340587 | +| [alkahest 0.1.5][alkahest] | 221.52 µs | † | 667570 | 325484 | 320452 | +| [bincode 2.0.0-rc][bincode] | 274.49 µs | 2.0685 ms | 367413 | 221291 | 206273 | +| [bincode 1.3.3][bincode1] | 561.87 µs | 1.7887 ms | 569975 | 240525 | 232423 | +| [bitcode 0.5.0][bitcode] | 285.78 µs | 1.8681 ms | 322798 | 214279 | 201247 | +| [borsh 1.3.0][borsh] | 525.85 µs | 1.8277 ms | 446595 | 234236 | 210008 | +| [bson 2.9.0][bson] | 2.8913 ms | 8.2514 ms | 1619653 | 502185 | 328399 | +| [capnp 0.18.13][capnp] | 470.99 µs | † | 803896 | 335606 | 280851 | +| [cbor4ii 0.3.2][cbor4ii] | 796.00 µs | 4.8538 ms | 1109831 | 344745 | 274514 | +| [ciborium 0.2.2][ciborium] | 3.6280 ms | 9.5520 ms | 1109821 | 344751 | 274526 | +| [databuf 0.5.0][databuf] | 319.10 µs | 1.7396 ms | 356311 | 213062 | 198488 | +| [dlhn 0.1.6][dlhn] | 683.74 µs | 2.5726 ms | 366496 | 220600 | 205683 | +| [flatbuffers 23.5.26][flatbuffers] | 3.3207 ms | † | 844168 | 345696 | 294015 | +| [msgpacker 0.4.3][msgpacker] | 914.87 µs | 2.8704 ms | 391251 | 236877 | 220476 | +| [nachricht-serde 0.4.0][nachricht-serde] | 5.3306 ms | 3.9616 ms | 449745 | 252432 | 231110 | +| [nanoserde 0.1.37][nanoserde] | 288.38 µs | 1.8804 ms | 567975 | 239930 | 232419 | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 661.87 µs | 2.0076 ms | 356311 | 212976 | 198524 | +| [postcard 1.0.8][postcard] | 422.09 µs | 1.9886 ms | 367489 | 221913 | 207344 | +| [pot 3.0.0][pot] | 2.3508 ms | 6.3356 ms | 599125 | 299158 | 247693 | +| [prost 0.12.3][prost] | *1.0447 ms\** *2.7444 ms\** | 3.5767 ms | 596811 | 305319 | 269310 | +| [rkyv 0.7.44][rkyv] | 302.47 µs | *1.2572 ms\** *1.7566 ms\** | 596952 | 253967 | 220706 | +| [rmp-serde 1.1.2][rmp-serde] | 1.4560 ms | 2.9793 ms | 424533 | 245214 | 226188 | +| [ron 0.8.1][ron] | 8.1970 ms | 16.822 ms | 1465223 | 434935 | 343338 | +| [savefile 0.16.5][savefile] | 221.91 µs | 1.8129 ms | 566991 | 239361 | 232010 | +| [serde_bare 0.5.0][serde_bare] | 680.58 µs | 2.2206 ms | 356311 | 213062 | 198488 | +| [serde_cbor 0.11.2][serde_cbor] | 1.7966 ms | 4.6925 ms | 1109821 | 344751 | 274526 | +| [serde_json 1.0.113][serde_json] | 3.6635 ms | 6.6790 ms | 1623191 | 466527 | 359623 | +| [simd-json 0.13.8][simd-json] | 2.2298 ms | 4.5224 ms | 1623191 | 466527 | 359623 | +| [speedy 0.8.7][speedy] | 272.65 µs | 1.6372 ms | 449595 | 234970 | 210361 | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *37.192 µs\** | *37.633 µs\** | ‡ | -| [alkahest 0.1.5][alkahest] | *1.8569 ns\** | *4.5778 µs\** | ‡ | -| [capnp 0.18.13][capnp] | *74.361 ns\** | *433.52 ns\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *2.4746 ns\** *2.1430 ms\** | *1.3744 µs\** *2.1500 ms\** | ‡ | -| [rkyv 0.7.44][rkyv] | *1.2366 ns\** *527.18 µs\** | *164.02 ns\** *513.10 µs\** | 848.94 ns | +| [abomonation 0.7.3][abomonation] | *37.656 µs\** | *38.454 µs\** | ‡ | +| [alkahest 0.1.5][alkahest] | *1.8552 ns\** | *4.5755 µs\** | ‡ | +| [capnp 0.18.13][capnp] | *76.091 ns\** | *441.08 ns\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *2.4749 ns\** *2.1469 ms\** | *1.3721 µs\** *2.2558 ms\** | ‡ | +| [rkyv 0.7.44][rkyv] | *1.2378 ns\** *498.19 µs\** | *163.40 ns\** *493.95 µs\** | 900.88 ns | ### Comparison @@ -294,44 +294,44 @@ Relative to best. Higher is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 64.90% | *95.44%\** | 25.39% | 50.61% | 53.66% | -| [alkahest 0.1.5][alkahest] | 56.67% | † | 49.09% | 61.74% | 57.03% | -| [bincode 2.0.0-rc][bincode] | 45.37% | 60.90% | 89.19% | 90.81% | 88.59% | -| [bincode 1.3.3][bincode1] | 21.59% | 69.14% | 57.49% | 83.55% | 78.63% | -| [bitcode 0.6.0][bitcode] | 100.00% | 98.87% | 100.00% | 100.00% | 100.00% | -| [borsh 1.3.0][borsh] | 22.55% | 69.10% | 73.38% | 85.79% | 87.02% | -| [bson 2.9.0][bson] | 4.32% | 15.25% | 20.23% | 40.01% | 55.65% | -| [capnp 0.18.13][capnp] | 25.83% | † | 40.76% | 59.88% | 65.07% | -| [cbor4ii 0.3.2][cbor4ii] | 15.53% | 27.31% | 29.53% | 58.29% | 66.57% | -| [ciborium 0.2.2][ciborium] | 3.32% | 13.17% | 29.53% | 58.29% | 66.57% | -| [databuf 0.5.0][databuf] | 38.25% | 72.42% | 91.97% | 94.31% | 92.07% | -| [dlhn 0.1.6][dlhn] | 16.24% | 48.49% | 89.41% | 91.09% | 88.85% | -| [flatbuffers 23.5.26][flatbuffers] | 3.75% | † | 38.82% | 58.13% | 62.16% | -| [msgpacker 0.4.3][msgpacker] | 13.63% | 44.78% | 83.76% | 84.83% | 82.89% | -| [nachricht-serde 0.4.0][nachricht-serde] | 2.31% | 32.13% | 72.86% | 79.60% | 79.07% | -| [nanoserde 0.1.37][nanoserde] | 44.07% | 66.80% | 57.69% | 83.75% | 78.63% | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 19.10% | 63.55% | 91.97% | 94.35% | 92.05% | -| [postcard 1.0.8][postcard] | 28.91% | 64.59% | 89.17% | 90.55% | 88.14% | -| [pot 3.0.0][pot] | 5.44% | 21.11% | 54.70% | 67.17% | 73.78% | -| [prost 0.12.3][prost] | *12.14%\** *4.59%\** | 34.83% | 54.91% | 65.82% | 67.86% | -| [rkyv 0.7.44][rkyv] | 41.72% | *100.00%\** *70.60%\** | 54.89% | 79.12% | 82.80% | -| [rmp-serde 1.1.2][rmp-serde] | 8.71% | 42.54% | 77.19% | 81.95% | 80.79% | -| [ron 0.8.1][ron] | 1.43% | 7.34% | 22.36% | 46.20% | 53.23% | -| [savefile 0.16.5][savefile] | 56.72% | 68.83% | 57.80% | 83.95% | 78.77% | -| [serde_bare 0.5.0][serde_bare] | 17.52% | 56.45% | 91.97% | 94.31% | 92.07% | -| [serde_cbor 0.11.2][serde_cbor] | 7.02% | 26.75% | 29.53% | 58.29% | 66.57% | -| [serde_json 1.0.114][serde_json] | 3.45% | 19.29% | 20.19% | 43.07% | 50.82% | -| [simd-json 0.13.8][simd-json] | 5.61% | 27.89% | 20.19% | 43.07% | 50.82% | -| [speedy 0.8.7][speedy] | 45.92% | 75.91% | 72.89% | 85.52% | 86.87% | +| [abomonation 0.7.3][abomonation] | 100.00% | *95.64%\** | 25.01% | 53.64% | 58.28% | +| [alkahest 0.1.5][alkahest] | 86.68% | † | 48.35% | 65.43% | 61.94% | +| [bincode 2.0.0-rc][bincode] | 69.96% | 60.78% | 87.86% | 96.24% | 96.23% | +| [bincode 1.3.3][bincode1] | 34.18% | 70.29% | 56.63% | 88.55% | 85.40% | +| [bitcode 0.5.0][bitcode] | 67.19% | 67.30% | 100.00% | 99.39% | 98.63% | +| [borsh 1.3.0][borsh] | 36.52% | 68.79% | 72.28% | 90.92% | 94.51% | +| [bson 2.9.0][bson] | 6.64% | 15.24% | 19.93% | 42.41% | 60.44% | +| [capnp 0.18.13][capnp] | 40.77% | † | 40.15% | 63.46% | 70.67% | +| [cbor4ii 0.3.2][cbor4ii] | 24.12% | 25.90% | 29.09% | 61.78% | 72.31% | +| [ciborium 0.2.2][ciborium] | 5.29% | 13.16% | 29.09% | 61.78% | 72.30% | +| [databuf 0.5.0][databuf] | 60.18% | 72.27% | 90.59% | 99.96% | 100.00% | +| [dlhn 0.1.6][dlhn] | 28.08% | 48.87% | 88.08% | 96.54% | 96.50% | +| [flatbuffers 23.5.26][flatbuffers] | 5.78% | † | 38.24% | 61.61% | 67.51% | +| [msgpacker 0.4.3][msgpacker] | 20.99% | 43.80% | 82.50% | 89.91% | 90.03% | +| [nachricht-serde 0.4.0][nachricht-serde] | 3.60% | 31.73% | 71.77% | 84.37% | 85.88% | +| [nanoserde 0.1.37][nanoserde] | 66.59% | 66.86% | 56.83% | 88.77% | 85.40% | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 29.01% | 62.62% | 90.59% | 100.00% | 99.98% | +| [postcard 1.0.8][postcard] | 45.49% | 63.22% | 87.84% | 95.97% | 95.73% | +| [pot 3.0.0][pot] | 8.17% | 19.84% | 53.88% | 71.19% | 80.13% | +| [prost 0.12.3][prost] | *18.38%\** *7.00%\** | 35.15% | 54.09% | 69.76% | 73.70% | +| [rkyv 0.7.44][rkyv] | 63.48% | *100.00%\** *71.57%\** | 54.07% | 83.86% | 89.93% | +| [rmp-serde 1.1.2][rmp-serde] | 13.19% | 42.20% | 76.04% | 86.85% | 87.75% | +| [ron 0.8.1][ron] | 2.34% | 7.47% | 22.03% | 48.97% | 57.81% | +| [savefile 0.16.5][savefile] | 86.53% | 69.35% | 56.93% | 88.98% | 85.55% | +| [serde_bare 0.5.0][serde_bare] | 28.21% | 56.62% | 90.59% | 99.96% | 100.00% | +| [serde_cbor 0.11.2][serde_cbor] | 10.69% | 26.79% | 29.09% | 61.78% | 72.30% | +| [serde_json 1.0.113][serde_json] | 5.24% | 18.82% | 19.89% | 45.65% | 55.19% | +| [simd-json 0.13.8][simd-json] | 8.61% | 27.80% | 19.89% | 45.65% | 55.19% | +| [speedy 0.8.7][speedy] | 70.43% | 76.79% | 71.80% | 90.64% | 94.36% | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *0.00%\** | *0.44%\** | ‡ | -| [alkahest 0.1.5][alkahest] | *66.59%\** | *3.58%\** | ‡ | -| [capnp 0.18.13][capnp] | *1.66%\** | *37.83%\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *49.97%\** *0.00%\** | *11.93%\** *0.01%\** | ‡ | +| [abomonation 0.7.3][abomonation] | *0.00%\** | *0.42%\** | ‡ | +| [alkahest 0.1.5][alkahest] | *66.72%\** | *3.57%\** | ‡ | +| [capnp 0.18.13][capnp] | *1.63%\** | *37.05%\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *50.01%\** *0.00%\** | *11.91%\** *0.01%\** | ‡ | | [rkyv 0.7.44][rkyv] | *100.00%\** *0.00%\** | *100.00%\** *0.03%\** | 100.00% | ## `mk48` @@ -346,45 +346,45 @@ For operations, time per iteration; for size, bytes. Lower is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 483.05 µs | *2.3250 ms\** | 2984682 | 1406922 | 1270221 | -| [alkahest 0.1.5][alkahest] | 739.03 µs | † | 1863391 | 1234113 | 1202345 | -| [bincode 2.0.0-rc][bincode] | 700.56 µs | 3.6627 ms | 1372381 | 1091486 | 1037296 | -| [bincode 1.3.3][bincode1] | 3.7217 ms | 3.8387 ms | 1811011 | 1115281 | 1025627 | -| [bitcode 0.6.0][bitcode] | 736.75 µs | 2.3698 ms | 958426 | 860768 | 838712 | -| [borsh 1.3.0][borsh] | 2.9005 ms | 2.5420 ms | 1486162 | 1082357 | 1013550 | -| [bson 2.9.0][bson] | 21.245 ms | 44.262 ms | 10030880 | 2833079 | 1600859 | -| [capnp 0.18.13][capnp] | 2.1679 ms | † | 2664040 | 1511895 | 1212087 | -| [cbor4ii 0.3.2][cbor4ii] | 4.2451 ms | 18.155 ms | 5878791 | 1655835 | 1431390 | -| [ciborium 0.2.2][ciborium] | 22.708 ms | 47.938 ms | 5878653 | 1655791 | 1431560 | -| [databuf 0.5.0][databuf] | 1.7742 ms | 3.6090 ms | 1288257 | 1037579 | 984337 | -| [dlhn 0.1.6][dlhn] | 5.1945 ms | 7.0770 ms | 1279599 | 1052061 | 1021161 | -| [flatbuffers 23.5.26][flatbuffers] | 5.0878 ms | † | 2273740 | 1408408 | 1235566 | -| [msgpacker 0.4.3][msgpacker] | 1.8698 ms | 4.5337 ms | 1424043 | 1128758 | 1110156 | -| [nachricht-serde 0.4.0][nachricht-serde] | 32.602 ms | 15.395 ms | 1728519 | 1247642 | 1233323 | -| [nanoserde 0.1.37][nanoserde] | 1.3043 ms | 2.9917 ms | 1770477 | 1108304 | 1029947 | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 3.0583 ms | 3.0194 ms | 1288257 | 1039269 | 986510 | -| [postcard 1.0.8][postcard] | 1.7380 ms | 3.9254 ms | 1279599 | 1058243 | 1016738 | -| [pot 3.0.0][pot] | 13.838 ms | 30.624 ms | 2544810 | 1447453 | 1268390 | -| [prost 0.12.3][prost] | *4.0722 ms\** *8.1733 ms\** | 9.3744 ms | 1818378 | 1307777 | 1266311 | -| [rkyv 0.7.44][rkyv] | 1.2772 ms | *2.1531 ms\** *2.7659 ms\** | 2029080 | 1335117 | 1158855 | -| [rmp-serde 1.1.2][rmp-serde] | 10.128 ms | 11.480 ms | 1703813 | 1231892 | 1200208 | -| [ron 0.8.1][ron] | 38.555 ms | 96.704 ms | 8476284 | 2181196 | 1783971 | -| [savefile 0.16.5][savefile] | 1.0094 ms | 2.6258 ms | 1750226 | 1101682 | 1027827 | -| [serde_bare 0.5.0][serde_bare] | 4.9776 ms | 4.3764 ms | 1288257 | 1037597 | 984356 | -| [serde_cbor 0.11.2][serde_cbor] | 9.3565 ms | 21.594 ms | 5878653 | 1655791 | 1431560 | -| [serde_json 1.0.114][serde_json] | 20.084 ms | 29.014 ms | 9175594 | 2334253 | 1800713 | -| [simd-json 0.13.8][simd-json] | 11.448 ms | 25.699 ms | 9175594 | 2334253 | 1800713 | -| [speedy 0.8.7][speedy] | 707.15 µs | 2.5079 ms | 1546963 | 1093532 | 1013443 | +| [abomonation 0.7.3][abomonation] | 476.53 µs | *2.3155 ms\** | 2984682 | 1410692 | 1273554 | +| [alkahest 0.1.5][alkahest] | 727.55 µs | † | 1863391 | 1234113 | 1202345 | +| [bincode 2.0.0-rc][bincode] | 696.23 µs | 3.5300 ms | 1372381 | 1091486 | 1037296 | +| [bincode 1.3.3][bincode1] | 3.6726 ms | 3.9197 ms | 1811011 | 1115281 | 1025627 | +| [bitcode 0.5.0][bitcode] | 1.0915 ms | 3.2882 ms | 870693 | 866738 | 870720 | +| [borsh 1.3.0][borsh] | 2.8697 ms | 2.5394 ms | 1486162 | 1082357 | 1013550 | +| [bson 2.9.0][bson] | 20.591 ms | 44.216 ms | 10030880 | 2833079 | 1600859 | +| [capnp 0.18.13][capnp] | 2.6748 ms | † | 2664040 | 1511895 | 1212087 | +| [cbor4ii 0.3.2][cbor4ii] | 4.3748 ms | 17.675 ms | 5878791 | 1655835 | 1431390 | +| [ciborium 0.2.2][ciborium] | 22.072 ms | 47.000 ms | 5878653 | 1655791 | 1431560 | +| [databuf 0.5.0][databuf] | 1.7838 ms | 3.6107 ms | 1288257 | 1037579 | 984337 | +| [dlhn 0.1.6][dlhn] | 4.9176 ms | 6.6456 ms | 1279599 | 1052061 | 1021161 | +| [flatbuffers 23.5.26][flatbuffers] | 5.0609 ms | † | 2273740 | 1408408 | 1235566 | +| [msgpacker 0.4.3][msgpacker] | 1.9131 ms | 4.5309 ms | 1424043 | 1128758 | 1110156 | +| [nachricht-serde 0.4.0][nachricht-serde] | 32.279 ms | 15.469 ms | 1728519 | 1247642 | 1233323 | +| [nanoserde 0.1.37][nanoserde] | 1.2905 ms | 3.0065 ms | 1770477 | 1108304 | 1029947 | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 2.8666 ms | 2.9817 ms | 1288257 | 1039269 | 986510 | +| [postcard 1.0.8][postcard] | 1.7794 ms | 3.9256 ms | 1279599 | 1058243 | 1016738 | +| [pot 3.0.0][pot] | 13.589 ms | 30.766 ms | 2544810 | 1447453 | 1268390 | +| [prost 0.12.3][prost] | *4.0968 ms\** *8.1792 ms\** | 9.3688 ms | 1818378 | 1307777 | 1266311 | +| [rkyv 0.7.44][rkyv] | 1.1072 ms | *2.1630 ms\** *2.7725 ms\** | 2029080 | 1335117 | 1158855 | +| [rmp-serde 1.1.2][rmp-serde] | 10.609 ms | 11.396 ms | 1703813 | 1231892 | 1200208 | +| [ron 0.8.1][ron] | 36.074 ms | 96.823 ms | 8476284 | 2181196 | 1783971 | +| [savefile 0.16.5][savefile] | 1.0051 ms | 2.6673 ms | 1750226 | 1101682 | 1027827 | +| [serde_bare 0.5.0][serde_bare] | 4.6538 ms | 4.4064 ms | 1288257 | 1037597 | 984356 | +| [serde_cbor 0.11.2][serde_cbor] | 9.2504 ms | 20.887 ms | 5878653 | 1655791 | 1431560 | +| [serde_json 1.0.113][serde_json] | 19.958 ms | 28.918 ms | 9175594 | 2334253 | 1800713 | +| [simd-json 0.13.8][simd-json] | 11.395 ms | 25.695 ms | 9175594 | 2334253 | 1800713 | +| [speedy 0.8.7][speedy] | 718.98 µs | 2.5161 ms | 1546963 | 1093532 | 1013443 | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *65.727 µs\** | *66.417 µs\** | ‡ | -| [alkahest 0.1.5][alkahest] | *1.8548 ns\** | *629.24 ns\** | ‡ | -| [capnp 0.18.13][capnp] | *74.341 ns\** | *710.71 ns\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *2.4726 ns\** *4.6907 ms\** | *2.6554 µs\** *4.7204 ms\** | ‡ | -| [rkyv 0.7.44][rkyv] | *1.2365 ns\** *599.67 µs\** | *475.46 ns\** *598.83 µs\** | 504.94 ns | +| [abomonation 0.7.3][abomonation] | *66.432 µs\** | *67.406 µs\** | ‡ | +| [alkahest 0.1.5][alkahest] | *1.8559 ns\** | *628.22 ns\** | ‡ | +| [capnp 0.18.13][capnp] | *76.071 ns\** | *1.0164 µs\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *2.4726 ns\** *5.0640 ms\** | *2.7103 µs\** *5.0529 ms\** | ‡ | +| [rkyv 0.7.44][rkyv] | *1.2374 ns\** *624.39 µs\** | *489.20 ns\** *619.26 µs\** | 502.06 ns | ### Comparison @@ -394,51 +394,51 @@ Relative to best. Higher is better. | Crate | Serialize | Deserialize | Size | Zlib | Zstd | |---|--:|--:|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | 100.00% | *92.61%\** | 32.11% | 61.18% | 66.03% | -| [alkahest 0.1.5][alkahest] | 65.36% | † | 51.43% | 69.75% | 69.76% | -| [bincode 2.0.0-rc][bincode] | 68.95% | 58.78% | 69.84% | 78.86% | 80.86% | -| [bincode 1.3.3][bincode1] | 12.98% | 56.09% | 52.92% | 77.18% | 81.78% | -| [bitcode 0.6.0][bitcode] | 65.56% | 90.86% | 100.00% | 100.00% | 100.00% | -| [borsh 1.3.0][borsh] | 16.65% | 84.70% | 64.49% | 79.53% | 82.75% | -| [bson 2.9.0][bson] | 2.27% | 4.86% | 9.55% | 30.38% | 52.39% | -| [capnp 0.18.13][capnp] | 22.28% | † | 35.98% | 56.93% | 69.20% | -| [cbor4ii 0.3.2][cbor4ii] | 11.38% | 11.86% | 16.30% | 51.98% | 58.59% | -| [ciborium 0.2.2][ciborium] | 2.13% | 4.49% | 16.30% | 51.99% | 58.59% | -| [databuf 0.5.0][databuf] | 27.23% | 59.66% | 74.40% | 82.96% | 85.21% | -| [dlhn 0.1.6][dlhn] | 9.30% | 30.42% | 74.90% | 81.82% | 82.13% | -| [flatbuffers 23.5.26][flatbuffers] | 9.49% | † | 42.15% | 61.12% | 67.88% | -| [msgpacker 0.4.3][msgpacker] | 25.83% | 47.49% | 67.30% | 76.26% | 75.55% | -| [nachricht-serde 0.4.0][nachricht-serde] | 1.48% | 13.99% | 55.45% | 68.99% | 68.00% | -| [nanoserde 0.1.37][nanoserde] | 37.04% | 71.97% | 54.13% | 77.67% | 81.43% | -| [parity-scale-codec 3.6.9][parity-scale-codec] | 15.79% | 71.31% | 74.40% | 82.82% | 85.02% | -| [postcard 1.0.8][postcard] | 27.79% | 54.85% | 74.90% | 81.34% | 82.49% | -| [pot 3.0.0][pot] | 3.49% | 7.03% | 37.66% | 59.47% | 66.12% | -| [prost 0.12.3][prost] | *11.86%\** *5.91%\** | 22.97% | 52.71% | 65.82% | 66.23% | -| [rkyv 0.7.44][rkyv] | 37.82% | *100.00%\** *77.84%\** | 47.23% | 64.47% | 72.37% | -| [rmp-serde 1.1.2][rmp-serde] | 4.77% | 18.76% | 56.25% | 69.87% | 69.88% | -| [ron 0.8.1][ron] | 1.25% | 2.23% | 11.31% | 39.46% | 47.01% | -| [savefile 0.16.5][savefile] | 47.86% | 82.00% | 54.76% | 78.13% | 81.60% | -| [serde_bare 0.5.0][serde_bare] | 9.70% | 49.20% | 74.40% | 82.96% | 85.20% | -| [serde_cbor 0.11.2][serde_cbor] | 5.16% | 9.97% | 16.30% | 51.99% | 58.59% | -| [serde_json 1.0.114][serde_json] | 2.41% | 7.42% | 10.45% | 36.88% | 46.58% | -| [simd-json 0.13.8][simd-json] | 4.22% | 8.38% | 10.45% | 36.88% | 46.58% | -| [speedy 0.8.7][speedy] | 68.31% | 85.85% | 61.96% | 78.71% | 82.76% | +| [abomonation 0.7.3][abomonation] | 100.00% | *93.41%\** | 29.17% | 61.44% | 68.37% | +| [alkahest 0.1.5][alkahest] | 65.50% | † | 46.73% | 70.23% | 72.42% | +| [bincode 2.0.0-rc][bincode] | 68.44% | 61.27% | 63.44% | 79.41% | 83.94% | +| [bincode 1.3.3][bincode1] | 12.98% | 55.18% | 48.08% | 77.71% | 84.90% | +| [bitcode 0.5.0][bitcode] | 43.66% | 65.78% | 100.00% | 100.00% | 100.00% | +| [borsh 1.3.0][borsh] | 16.61% | 85.18% | 58.59% | 80.08% | 85.91% | +| [bson 2.9.0][bson] | 2.31% | 4.89% | 8.68% | 30.59% | 54.39% | +| [capnp 0.18.13][capnp] | 17.82% | † | 32.68% | 57.33% | 71.84% | +| [cbor4ii 0.3.2][cbor4ii] | 10.89% | 12.24% | 14.81% | 52.34% | 60.83% | +| [ciborium 0.2.2][ciborium] | 2.16% | 4.60% | 14.81% | 52.35% | 60.82% | +| [databuf 0.5.0][databuf] | 26.71% | 59.91% | 67.59% | 83.53% | 88.46% | +| [dlhn 0.1.6][dlhn] | 9.69% | 32.55% | 68.04% | 82.38% | 85.27% | +| [flatbuffers 23.5.26][flatbuffers] | 9.42% | † | 38.29% | 61.54% | 70.47% | +| [msgpacker 0.4.3][msgpacker] | 24.91% | 47.74% | 61.14% | 76.79% | 78.43% | +| [nachricht-serde 0.4.0][nachricht-serde] | 1.48% | 13.98% | 50.37% | 69.47% | 70.60% | +| [nanoserde 0.1.37][nanoserde] | 36.93% | 71.94% | 49.18% | 78.20% | 84.54% | +| [parity-scale-codec 3.6.9][parity-scale-codec] | 16.62% | 72.54% | 67.59% | 83.40% | 88.26% | +| [postcard 1.0.8][postcard] | 26.78% | 55.10% | 68.04% | 81.90% | 85.64% | +| [pot 3.0.0][pot] | 3.51% | 7.03% | 34.21% | 59.88% | 68.65% | +| [prost 0.12.3][prost] | *11.63%\** *5.83%\** | 23.09% | 47.88% | 66.28% | 68.76% | +| [rkyv 0.7.44][rkyv] | 43.04% | *100.00%\** *78.02%\** | 42.91% | 64.92% | 75.14% | +| [rmp-serde 1.1.2][rmp-serde] | 4.49% | 18.98% | 51.10% | 70.36% | 72.55% | +| [ron 0.8.1][ron] | 1.32% | 2.23% | 10.27% | 39.74% | 48.81% | +| [savefile 0.16.5][savefile] | 47.41% | 81.09% | 49.75% | 78.67% | 84.71% | +| [serde_bare 0.5.0][serde_bare] | 10.24% | 49.09% | 67.59% | 83.53% | 88.46% | +| [serde_cbor 0.11.2][serde_cbor] | 5.15% | 10.36% | 14.81% | 52.35% | 60.82% | +| [serde_json 1.0.113][serde_json] | 2.39% | 7.48% | 9.49% | 37.13% | 48.35% | +| [simd-json 0.13.8][simd-json] | 4.18% | 8.42% | 9.49% | 37.13% | 48.35% | +| [speedy 0.8.7][speedy] | 66.28% | 85.97% | 56.28% | 79.26% | 85.92% | #### Zero-copy deserialization speed | Crate | Access | Read | Update | |---|--:|--:|--:| -| [abomonation 0.7.3][abomonation] | *0.00%\** | *0.72%\** | ‡ | -| [alkahest 0.1.5][alkahest] | *66.66%\** | *75.56%\** | ‡ | -| [capnp 0.18.13][capnp] | *1.66%\** | *66.90%\** | ‡ | -| [flatbuffers 23.5.26][flatbuffers] | *50.01%\** *0.00%\** | *17.91%\** *0.01%\** | ‡ | +| [abomonation 0.7.3][abomonation] | *0.00%\** | *0.73%\** | ‡ | +| [alkahest 0.1.5][alkahest] | *66.67%\** | *77.87%\** | ‡ | +| [capnp 0.18.13][capnp] | *1.63%\** | *48.13%\** | ‡ | +| [flatbuffers 23.5.26][flatbuffers] | *50.04%\** *0.00%\** | *18.05%\** *0.01%\** | ‡ | | [rkyv 0.7.44][rkyv] | *100.00%\** *0.00%\** | *100.00%\** *0.08%\** | 100.00% | [abomonation]: https://crates.io/crates/abomonation/0.7.3 [alkahest]: https://crates.io/crates/alkahest/0.1.5 [bincode]: https://crates.io/crates/bincode/2.0.0-rc [bincode1]: https://crates.io/crates/bincode/1.3.3 -[bitcode]: https://crates.io/crates/bitcode/0.6.0 +[bitcode]: https://crates.io/crates/bitcode/0.5.0 [borsh]: https://crates.io/crates/borsh/1.3.0 [bson]: https://crates.io/crates/bson/2.9.0 [capnp]: https://crates.io/crates/capnp/0.18.13 @@ -460,7 +460,7 @@ Relative to best. Higher is better. [savefile]: https://crates.io/crates/savefile/0.16.5 [serde_bare]: https://crates.io/crates/serde_bare/0.5.0 [serde_cbor]: https://crates.io/crates/serde_cbor/0.11.2 -[serde_json]: https://crates.io/crates/serde_json/1.0.114 +[serde_json]: https://crates.io/crates/serde_json/1.0.113 [simd-json]: https://crates.io/crates/simd-json/0.13.8 [speedy]: https://crates.io/crates/speedy/0.8.7