The goal of these benchmarks is to provide thorough and complete benchmarks for various rust serialization frameworks.
These benchmarks are maintained by a small group of volunteers. Special thanks to:
These benchmarks are still being developed and pull requests to improve benchmarks are welcome.
Calculate the number of messages per second that can be sent/received with various rust serialization frameworks and compression libraries. Documentation
All tests benchmark the following properties (time or size):
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. Some common terms for those variants:
Other footnotes are located at the bottom of the page.
rustc versionrustc 1.99.0-nightly (c4af71034 2026-07-06)
binary: rustc
commit-hash: c4af71034e89a431eeee91125a31ad001379faac
commit-date: 2026-07-06
host: x86_64-unknown-linux-gnu
release: 1.99.0-nightly
LLVM version: 22.1.8
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 48 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: AuthenticAMD
Model name: AMD EPYC 7763 64-Core Processor
CPU family: 25
Model: 1
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Stepping: 1
BogoMIPS: 4890.86
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid aperfmperf tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves user_shstk clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload umip vaes vpclmulqdq rdpid fsrm
Virtualization: AMD-V
Hypervisor vendor: Microsoft
Virtualization type: full
L1d cache: 64 KiB (2 instances)
L1i cache: 64 KiB (2 instances)
L2 cache: 1 MiB (2 instances)
L3 cache: 32 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-3
Vulnerability Gather data sampling: Not affected
Vulnerability Ghostwrite: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Old microcode: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Vulnerability Srbds: Not affected
Vulnerability Tsa: Vulnerable: No microcode
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
logThis data set is composed of HTTP request logs that are small and contain many strings.
For operations, time per iteration; for size, bytes. Lower is better.
| Crate | Serialize | Deserialize | Borrow | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 460.98 µs* 415.89 µs* | 2.5718 ms | 865.08 µs | 804955 | 328941 | 284849 | 4.2775 ms |
| bin-proto 0.12.8 | 4.3301 ms | 4.6983 ms | † | 1045784 | 373127 | 311553 | 4.7386 ms |
| bincode 2.0.1 | 368.56 µs | 2.1557 ms | 697.96 µs | 741295 | 303944 | 256422 | 3.7634 ms |
| bincode 1.3.3 | 525.29 µs | 2.0681 ms | 609.77 µs | 1045784 | 373127 | 311553 | 4.6012 ms |
| bitcode 0.6.9 | 138.30 µs | 1.4597 ms | 60.708 µs | 703710 | 288826 | 227322 | 2.7045 ms |
| borsh 1.7.0 | 540.95 µs | 2.1698 ms | † | 885780 | 362204 | 286248 | 4.2796 ms |
| capnp: capnp 0.26.0 |
599.36 µs 1.5060 ms* | † | † | 1443216 1046865* | 513986 481681* | 426532 458024* | 6.2564 ms 5.4839 ms* |
| cbor: cbor4ii 1.2.2 |
617.86 µs | 4.9260 ms | 3.4380 ms | 1407835 | 403440 | 323561 | 5.2402 ms |
| cbor: ciborium 0.2.2 |
3.0980 ms | 11.188 ms | † | 1407835 | 403440 | 323561 | 4.9004 ms |
| cbor: serde_cbor 0.11.2 |
1.8847 ms | 4.9660 ms | 3.3782 ms | 1407835 | 403440 | 323561 | 4.8588 ms |
| columnar 0.13.1 | 248.64 µs | 2.1201 ms 737.31 µs* | † | 1045928 | 370212 | 293907 | 4.2904 ms |
| compactly 0.1.7 | 25.158 ms | 16.659 ms | † | 239520 | 239720 | 239532 | 236.70 µs |
| databuf 0.5.0 | 262.24 µs | 2.0174 ms | 659.65 µs | 765778 | 311715 | 263914 | 3.5959 ms |
| dlhn 0.1.7 | 665.54 µs | 2.5829 ms | † | 724953 | 301446 | 253056 | 3.3588 ms |
| flatbuffers 25.12.19 | 1.0470 ms | † | † | 1276368 | 468539 | 388381 | 4.8933 ms |
| flexbuffers 25.12.19 | 6.7401 ms | 7.3357 ms | 5.6151 ms | 1829756 | 714318 | 691541 | 8.5372 ms |
| json: flexon 0.4.6 |
2.7138 ms | 3.8044 ms | † | 1827461 | 470560 | 360727 | 5.6830 ms |
| json: serde_json 1.0.150 |
3.9866 ms | 6.0108 ms | † | 1827461 | 470560 | 360727 | 5.6216 ms |
| json: simd-json 0.17.0 |
2.1667 ms | 4.7125 ms | † | 1827461 | 470560 | 360727 | 5.6041 ms |
| messagepack: msgpacker 0.7.1 |
348.37 µs | 2.5768 ms | 927.60 µs | 764996 | 315291 | 264212 | 3.5920 ms |
| messagepack: rmp-serde 1.3.1 |
1.5477 ms | 3.2096 ms | 1.4297 ms | 784997 | 325384 | 277608 | 3.9357 ms |
| messagepack: zerompk 0.6.0 |
358.77 µs | 2.2502 ms | 779.38 µs | 784997 | 325384 | 277608 | 3.9107 ms |
| minicbor 2.2.2 | 466.11 µs | 2.9828 ms | 1.3897 ms | 817830 | 332671 | 284034 | 4.0665 ms |
| nachricht-serde 0.4.0 | 5.3443 ms | 4.0759 ms | 2.4948 ms | 818669 | 332556 | 284797 | 4.2151 ms |
| nanoserde 0.2.1 | 254.99 µs | 2.0856 ms | † | 1045784 | 373127 | 311553 | 4.3017 ms |
| nibblecode 0.1.0 | 194.00 µs | † | † | 1011487 | 473998 | 404669 | 5.4412 ms |
| postcard 1.1.3 | 423.90 µs | 2.3253 ms | 604.84 µs | 724953 | 302399 | 252968 | 3.3306 ms |
| pot 3.0.1 | 2.2729 ms | 5.7016 ms | 4.3395 ms | 971922 | 372513 | 303636 | 4.4787 ms |
| protobuf: buffa 0.8.0 |
765.62 µs* 2.5369 ms* | 3.3194 ms* 3.3989 ms* | 2.0401 ms | 884628 | 363130 | 314959 | 4.4280 ms |
| protobuf: prost 0.14.4 |
944.74 µs* 2.4872 ms* | 3.3456 ms* 3.3980 ms* | † | 884628 | 363130 | 314959 | 4.5305 ms |
| protobuf: protobuf 3.7.2 |
982.31 µs* 2.8122 ms* | 3.9619 ms* 4.0935 ms* | † | 884628 | 363130 | 314959 | 4.4255 ms |
| protobuf: protobuf 4.35.1-release |
1.6766 ms* 7.6261 ms* | 7.4229 ms* 2.9629 ms* | † | 884628 | 363130 | 314959 | 4.5007 ms |
| rkyv 0.8.16 | 259.39 µs | 1.5546 ms* 1.9186 ms* | † | 1011488 | 393526 | 325965 | 4.7205 ms |
| ron 0.12.2 | 12.515 ms | 26.467 ms | 25.250 ms | 1607459 | 449158 | 349324 | 5.7506 ms |
| savefile 0.20.4 | 207.90 µs | 2.0559 ms | † | 1045800 | 373139 | 311562 | 4.2595 ms |
| scale: parity-scale-codec 3.7.5 |
671.28 µs | 2.3266 ms | † | 765778 | 311743 | 263822 | 3.5478 ms |
| serde-brief 0.2.0 | 1.3855 ms | 4.5659 ms | 2.8477 ms | 1584946 | 413733 | 339964 | 5.0117 ms |
| serde_bare 0.5.0 | 682.89 µs | 2.0865 ms | † | 765778 | 311715 | 263914 | 3.8018 ms |
| speedy 0.8.7 | 198.07 µs | 1.7574 ms | 378.75 µs | 885780 | 362204 | 286248 | 3.9703 ms |
| wincode 0.5.5 | 174.13 µs | 1.7554 ms | 371.56 µs | 1045784 | 373127 | 311553 | 4.4427 ms |
| wiring 0.2.4 | 192.32 µs | 2.0652 ms | † | 1045784 | 337930 | 275808 | 3.8237 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
62.816 ns* | 1.0116 ms* 144.77 µs* | ‡ |
| columnar 0.13.1 | 20.270 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.4904 ns* 2.0806 ms* | 51.230 µs* 2.1568 ms* | ‡ |
| nibblecode 0.1.0 | 1.2452 ns* 239.98 µs* | 10.371 µs* 250.37 µs* | 7.7532 µs* |
| rkyv 0.8.16 | 1.2450 ns* 360.97 µs* | 10.464 µs* 368.58 µs* | 7.4547 µs* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Borrow | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 30.00%* 33.25%* | 28.67% | 7.02% | 29.76% | 72.88% | 79.80% | 5.53% |
| bin-proto 0.12.8 | 3.19% | 15.69% | † | 22.90% | 64.25% | 72.96% | 5.00% |
| bincode 2.0.1 | 37.52% | 34.20% | 8.70% | 32.31% | 78.87% | 88.65% | 6.29% |
| bincode 1.3.3 | 26.33% | 35.65% | 9.96% | 22.90% | 64.25% | 72.96% | 5.14% |
| bitcode 0.6.9 | 100.00% | 50.51% | 100.00% | 34.04% | 83.00% | 100.00% | 8.75% |
| borsh 1.7.0 | 25.57% | 33.98% | † | 27.04% | 66.18% | 79.41% | 5.53% |
| capnp: capnp 0.26.0 |
23.07% 9.18%* | † | † | 16.60% 22.88%* | 46.64% 49.77%* | 53.30% 49.63%* | 3.78% 4.32%* |
| cbor: cbor4ii 1.2.2 |
22.38% | 14.97% | 1.77% | 17.01% | 59.42% | 70.26% | 4.52% |
| cbor: ciborium 0.2.2 |
4.46% | 6.59% | † | 17.01% | 59.42% | 70.26% | 4.83% |
| cbor: serde_cbor 0.11.2 |
7.34% | 14.85% | 1.80% | 17.01% | 59.42% | 70.26% | 4.87% |
| columnar 0.13.1 | 55.62% | 34.78% 100.00%* | † | 22.90% | 64.75% | 77.34% | 5.52% |
| compactly 0.1.7 | 0.55% | 4.43% | † | 100.00% | 100.00% | 94.90% | 100.00% |
| databuf 0.5.0 | 52.74% | 36.55% | 9.20% | 31.28% | 76.90% | 86.13% | 6.58% |
| dlhn 0.1.7 | 20.78% | 28.55% | † | 33.04% | 79.52% | 89.83% | 7.05% |
| flatbuffers 25.12.19 | 13.21% | † | † | 18.77% | 51.16% | 58.53% | 4.84% |
| flexbuffers 25.12.19 | 2.05% | 10.05% | 1.08% | 13.09% | 33.56% | 32.87% | 2.77% |
| json: flexon 0.4.6 |
5.10% | 19.38% | † | 13.11% | 50.94% | 63.02% | 4.17% |
| json: serde_json 1.0.150 |
3.47% | 12.27% | † | 13.11% | 50.94% | 63.02% | 4.21% |
| json: simd-json 0.17.0 |
6.38% | 15.65% | † | 13.11% | 50.94% | 63.02% | 4.22% |
| messagepack: msgpacker 0.7.1 |
39.70% | 28.61% | 6.54% | 31.31% | 76.03% | 86.04% | 6.59% |
| messagepack: rmp-serde 1.3.1 |
8.94% | 22.97% | 4.25% | 30.51% | 73.67% | 81.89% | 6.01% |
| messagepack: zerompk 0.6.0 |
38.55% | 32.77% | 7.79% | 30.51% | 73.67% | 81.89% | 6.05% |
| minicbor 2.2.2 | 29.67% | 24.72% | 4.37% | 29.29% | 72.06% | 80.03% | 5.82% |
| nachricht-serde 0.4.0 | 2.59% | 18.09% | 2.43% | 29.26% | 72.08% | 79.82% | 5.62% |
| nanoserde 0.2.1 | 54.24% | 35.35% | † | 22.90% | 64.25% | 72.96% | 5.50% |
| nibblecode 0.1.0 | 71.29% | † | † | 23.68% | 50.57% | 56.17% | 4.35% |
| postcard 1.1.3 | 32.63% | 31.71% | 10.04% | 33.04% | 79.27% | 89.86% | 7.11% |
| pot 3.0.1 | 6.08% | 12.93% | 1.40% | 24.64% | 64.35% | 74.87% | 5.29% |
| protobuf: buffa 0.8.0 |
18.06%* 5.45%* | 22.21%* 21.69%* | 2.98% | 27.08% | 66.01% | 72.18% | 5.35% |
| protobuf: prost 0.14.4 |
14.64%* 5.56%* | 22.04%* 21.70%* | † | 27.08% | 66.01% | 72.18% | 5.22% |
| protobuf: protobuf 3.7.2 |
14.08%* 4.92%* | 18.61%* 18.01%* | † | 27.08% | 66.01% | 72.18% | 5.35% |
| protobuf: protobuf 4.35.1-release |
8.25%* 1.81%* | 9.93%* 24.88%* | † | 27.08% | 66.01% | 72.18% | 5.26% |
| rkyv 0.8.16 | 53.32% | 47.43%* 38.43%* | † | 23.68% | 60.92% | 69.74% | 5.01% |
| ron 0.12.2 | 1.11% | 2.79% | 0.24% | 14.90% | 53.37% | 65.07% | 4.12% |
| savefile 0.20.4 | 66.52% | 35.86% | † | 22.90% | 64.24% | 72.96% | 5.56% |
| scale: parity-scale-codec 3.7.5 |
20.60% | 31.69% | † | 31.28% | 76.90% | 86.16% | 6.67% |
| serde-brief 0.2.0 | 9.98% | 16.15% | 2.13% | 15.11% | 57.94% | 66.87% | 4.72% |
| serde_bare 0.5.0 | 20.25% | 35.34% | † | 31.28% | 76.90% | 86.13% | 6.23% |
| speedy 0.8.7 | 69.82% | 41.95% | 16.03% | 27.04% | 66.18% | 79.41% | 5.96% |
| wincode 0.5.5 | 79.42% | 42.00% | 16.34% | 22.90% | 64.25% | 72.96% | 5.33% |
| wiring 0.2.4 | 71.91% | 35.70% | † | 22.90% | 70.94% | 82.42% | 6.19% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
1.98%* | 1.03%* 7.16%* | ‡ |
| columnar 0.13.1 | 6.14% | ‡ | ‡ |
| flatbuffers 25.12.19 | 49.99%* 0.00%* | 20.24%* 0.48%* | ‡ |
| nibblecode 0.1.0 | 99.98%* 0.00%* | 100.00%* 4.14%* | 96.15%* |
| rkyv 0.8.16 | 100.00%* 0.00%* | 99.11%* 2.81%* | 100.00%* |
meshThis data set is a single mesh. The mesh contains an array of triangles, each of which has three vertices and a normal vector.
For operations, time per iteration; for size, bytes. Lower is better.
| Crate | Serialize | Deserialize | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 7.2466 ms* 8.7399 ms* | 7.7927 ms | 8625005 | 6443961 | 6231572 | 74.608 ms |
| bin-proto 0.12.8 | 8.3563 ms | 11.120 ms | 6000008 | 5378500 | 5346908 | 9.4197 ms |
| bincode 2.0.1 | 2.4175 ms | 789.95 µs | 6000005 | 5378497 | 5346882 | 9.2164 ms |
| bincode 1.3.3 | 5.6429 ms | 5.0262 ms | 6000008 | 5378500 | 5346908 | 9.2952 ms |
| bitcode 0.6.9 | 1.3758 ms | 810.29 µs | 6000006 | 5182295 | 4921841 | 13.977 ms |
| borsh 1.7.0 | 6.3050 ms | 4.4647 ms | 6000004 | 5378496 | 5346866 | 9.4882 ms |
| capnp: capnp 0.26.0 |
9.5969 ms 19.508 ms* | † | 14000088 10401737* | 7130367 7308001* | 6046182 7922110* | 83.079 ms 68.986 ms* |
| cbor: cbor4ii 1.2.2 |
8.7492 ms | 44.619 ms | 13125016 | 7524114 | 6757437 | 92.948 ms |
| cbor: ciborium 0.2.2 |
63.931 ms | 112.28 ms | 13122324 | 7524660 | 6759128 | 92.521 ms |
| cbor: serde_cbor 0.11.2 |
33.956 ms | 41.333 ms | 13122324 | 7524660 | 6759128 | 94.556 ms |
| columnar 0.13.1 | 1.9378 ms | 1.4448 ms 669.42 µs* | 6000120 | 5378435 | 5347039 | 9.0186 ms |
| compactly 0.1.7 | 359.36 ms | 162.94 ms | 4846788 | 4850067 | 4846905 | 2.1319 ms |
| databuf 0.5.0 | 2.4158 ms | 5.4131 ms | 6000003 | 5378495 | 5346897 | 9.3367 ms |
| dlhn 0.1.7 | 6.0317 ms | 7.0876 ms | 6000003 | 5378495 | 5346897 | 9.1760 ms |
| flatbuffers 25.12.19 | 502.92 µs | † | 6000024 | 5378434 | 5346878 | 9.3601 ms |
| flexbuffers 25.12.19 | 103.85 ms | 85.811 ms | 26609424 | 11901040 | 12486322 | 159.08 ms |
| json: flexon 0.4.6 |
77.097 ms | 55.621 ms | 26192883 | 9566084 | 8584671 | 157.99 ms |
| json: serde_json 1.0.150 |
91.763 ms | 99.621 ms | 26192883 | 9566084 | 8584671 | 158.02 ms |
| json: simd-json 0.17.0 |
53.566 ms | 69.139 ms | 26192883 | 9566084 | 8584671 | 161.35 ms |
| messagepack: msgpacker 0.7.1 |
668.92 µs | 5.3006 ms | 7500005 | 6058442 | 6014500 | 10.989 ms |
| messagepack: rmp-serde 1.3.1 |
21.045 ms | 16.937 ms | 8125006 | 6494876 | 6391037 | 72.038 ms |
| messagepack: zerompk 0.6.0 |
752.98 µs | 5.2112 ms | 8125006 | 6494876 | 6391037 | 72.676 ms |
| minicbor 2.2.2 | 5.1987 ms | 11.787 ms | 8125006 | 6494907 | 6390894 | 71.565 ms |
| nachricht-serde 0.4.0 | 117.77 ms | 25.917 ms | 8125037 | 6493484 | 6386940 | 72.841 ms |
| nanoserde 0.2.1 | 1.9352 ms | 835.57 µs | 6000008 | 5378500 | 5346908 | 8.9922 ms |
| nibblecode 0.1.0 | 148.52 µs | † | 6000008 | 5378500 | 5346908 | 8.7394 ms |
| postcard 1.1.3 | 480.31 µs | 1.1268 ms | 6000003 | 5378495 | 5346897 | 9.3771 ms |
| pot 3.0.1 | 38.172 ms | 60.152 ms | 10122342 | 6814618 | 6852252 | 84.133 ms |
| protobuf: buffa 0.8.0 |
8.6908 ms* 26.608 ms* | 26.768 ms* 26.330 ms* | 8750000 | 6665735 | 6421877 | 73.800 ms |
| protobuf: prost 0.14.4 |
7.8208 ms* 8.9393 ms* | 12.161 ms* 12.531 ms* | 8750000 | 6665735 | 6421877 | 74.555 ms |
| protobuf: protobuf 3.7.2 |
15.584 ms* 32.821 ms* | 31.172 ms* 31.160 ms* | 8750000 | 6665735 | 6421877 | 81.283 ms |
| protobuf: protobuf 4.35.1-release |
43.126 ms* 120.19 ms* | 68.192 ms* 35.763 ms* | 8750000 | 6665735 | 6421877 | 80.109 ms |
| rkyv 0.8.16 | 155.01 µs | 155.82 µs* 157.33 µs* | 6000008 | 5378500 | 5346872 | 9.0538 ms |
| ron 0.12.2 | 180.46 ms | 584.03 ms | 22192885 | 8970395 | 8137334 | 154.84 ms |
| savefile 0.20.4 | 151.17 µs | 150.85 µs | 6000024 | 5378519 | 5346896 | 9.4405 ms |
| scale: parity-scale-codec 3.7.5 |
5.1423 ms | 4.7527 ms | 6000004 | 5378496 | 5346866 | 10.759 ms |
| serde-brief 0.2.0 | 18.015 ms | 36.170 ms | 15750015 | 8024540 | 6813667 | 95.426 ms |
| serde_bare 0.5.0 | 5.5614 ms | 4.9713 ms | 6000003 | 5378495 | 5346897 | 8.9934 ms |
| speedy 0.8.7 | 151.27 µs | 151.70 µs | 6000004 | 5378496 | 5346866 | 9.0094 ms |
| wincode 0.5.5 | 153.56 µs | 152.51 µs | 6000008 | 5378500 | 5346908 | 9.5447 ms |
| wiring 0.2.4 | 152.53 µs | 345.67 µs | 6000008 | 5378952 | 5346905 | 9.0240 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
92.948 ns* | 13.327 ms* 2.1236 ms* | ‡ |
| columnar 0.13.1 | 20.588 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.4912 ns* 45.072 ns* | 78.730 µs* 77.979 µs* | ‡ |
| nibblecode 0.1.0 | 1.2447 ns* 1.5591 ns* | 38.960 µs* 38.945 µs* | 78.608 µs* |
| rkyv 0.8.16 | 1.2452 ns* 5.6106 ns* | 38.949 µs* 38.952 µs* | 75.563 µs* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 2.05%* 1.70%* | 1.94% | 56.19% | 75.27% | 77.78% | 2.86% |
| bin-proto 0.12.8 | 1.78% | 1.36% | 80.78% | 90.18% | 90.65% | 22.63% |
| bincode 2.0.1 | 6.14% | 19.10% | 80.78% | 90.18% | 90.65% | 23.13% |
| bincode 1.3.3 | 2.63% | 3.00% | 80.78% | 90.18% | 90.65% | 22.94% |
| bitcode 0.6.9 | 10.80% | 18.62% | 80.78% | 93.59% | 98.48% | 15.25% |
| borsh 1.7.0 | 2.36% | 3.38% | 80.78% | 90.18% | 90.65% | 22.47% |
| capnp: capnp 0.26.0 |
1.55% 0.76%* | † | 34.62% 46.60%* | 68.02% 66.37%* | 80.16% 61.18%* | 2.57% 3.09%* |
| cbor: cbor4ii 1.2.2 |
1.70% | 0.34% | 36.93% | 64.46% | 71.73% | 2.29% |
| cbor: ciborium 0.2.2 |
0.23% | 0.13% | 36.94% | 64.46% | 71.71% | 2.30% |
| cbor: serde_cbor 0.11.2 |
0.44% | 0.36% | 36.94% | 64.46% | 71.71% | 2.25% |
| columnar 0.13.1 | 7.66% | 10.44% 22.53%* | 80.78% | 90.18% | 90.65% | 23.64% |
| compactly 0.1.7 | 0.04% | 0.09% | 100.00% | 100.00% | 100.00% | 100.00% |
| databuf 0.5.0 | 6.15% | 2.79% | 80.78% | 90.18% | 90.65% | 22.83% |
| dlhn 0.1.7 | 2.46% | 2.13% | 80.78% | 90.18% | 90.65% | 23.23% |
| flatbuffers 25.12.19 | 29.53% | † | 80.78% | 90.18% | 90.65% | 22.78% |
| flexbuffers 25.12.19 | 0.14% | 0.18% | 18.21% | 40.75% | 38.82% | 1.34% |
| json: flexon 0.4.6 |
0.19% | 0.27% | 18.50% | 50.70% | 56.46% | 1.35% |
| json: serde_json 1.0.150 |
0.16% | 0.15% | 18.50% | 50.70% | 56.46% | 1.35% |
| json: simd-json 0.17.0 |
0.28% | 0.22% | 18.50% | 50.70% | 56.46% | 1.32% |
| messagepack: msgpacker 0.7.1 |
22.20% | 2.85% | 64.62% | 80.05% | 80.59% | 19.40% |
| messagepack: rmp-serde 1.3.1 |
0.71% | 0.89% | 59.65% | 74.68% | 75.84% | 2.96% |
| messagepack: zerompk 0.6.0 |
19.72% | 2.89% | 59.65% | 74.68% | 75.84% | 2.93% |
| minicbor 2.2.2 | 2.86% | 1.28% | 59.65% | 74.67% | 75.84% | 2.98% |
| nachricht-serde 0.4.0 | 0.13% | 0.58% | 59.65% | 74.69% | 75.89% | 2.93% |
| nanoserde 0.2.1 | 7.67% | 18.05% | 80.78% | 90.18% | 90.65% | 23.71% |
| nibblecode 0.1.0 | 100.00% | † | 80.78% | 90.18% | 90.65% | 24.39% |
| postcard 1.1.3 | 30.92% | 13.39% | 80.78% | 90.18% | 90.65% | 22.74% |
| pot 3.0.1 | 0.39% | 0.25% | 47.88% | 71.17% | 70.73% | 2.53% |
| protobuf: buffa 0.8.0 |
1.71%* 0.56%* | 0.56%* 0.57%* | 55.39% | 72.76% | 75.47% | 2.89% |
| protobuf: prost 0.14.4 |
1.90%* 1.66%* | 1.24%* 1.20%* | 55.39% | 72.76% | 75.47% | 2.86% |
| protobuf: protobuf 3.7.2 |
0.95%* 0.45%* | 0.48%* 0.48%* | 55.39% | 72.76% | 75.47% | 2.62% |
| protobuf: protobuf 4.35.1-release |
0.34%* 0.12%* | 0.22%* 0.42%* | 55.39% | 72.76% | 75.47% | 2.66% |
| rkyv 0.8.16 | 95.81% | 96.81%* 95.88%* | 80.78% | 90.18% | 90.65% | 23.55% |
| ron 0.12.2 | 0.08% | 0.03% | 21.84% | 54.07% | 59.56% | 1.38% |
| savefile 0.20.4 | 98.25% | 100.00% | 80.78% | 90.17% | 90.65% | 22.58% |
| scale: parity-scale-codec 3.7.5 |
2.89% | 3.17% | 80.78% | 90.18% | 90.65% | 19.82% |
| serde-brief 0.2.0 | 0.82% | 0.42% | 30.77% | 60.44% | 71.14% | 2.23% |
| serde_bare 0.5.0 | 2.67% | 3.03% | 80.78% | 90.18% | 90.65% | 23.71% |
| speedy 0.8.7 | 98.18% | 99.44% | 80.78% | 90.18% | 90.65% | 23.66% |
| wincode 0.5.5 | 96.72% | 98.91% | 80.78% | 90.18% | 90.65% | 22.34% |
| wiring 0.2.4 | 97.37% | 43.64% | 80.78% | 90.17% | 90.65% | 23.62% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
1.34%* | 0.29%* 1.83%* | ‡ |
| columnar 0.13.1 | 6.05% | ‡ | ‡ |
| flatbuffers 25.12.19 | 49.96%* 2.76%* | 49.47%* 49.94%* | ‡ |
| nibblecode 0.1.0 | 100.00%* 79.83%* | 99.96%* 100.00%* | 96.13%* |
| rkyv 0.8.16 | 99.96%* 22.18%* | 99.99%* 99.98%* | 100.00%* |
minecraft_savedataThis data set is composed of Minecraft player saves that contain highly structured data.
For operations, time per iteration; for size, bytes. Lower is better.
| Crate | Serialize | Deserialize | Borrow | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 875.32 µs* 799.67 µs* | 3.1126 ms | 1.7342 ms | 489348 | 281173 | 249360 | 2.6743 ms |
| bin-proto 0.12.8 | 1.9095 ms | 2.8950 ms | † | 566975 | 239350 | 231475 | 2.5990 ms |
| bincode 2.0.1 | 338.21 µs | 1.8270 ms | 782.86 µs | 367413 | 221291 | 206242 | 2.1296 ms |
| bincode 1.3.3 | 590.51 µs | 1.8475 ms | 883.01 µs | 569975 | 240525 | 231884 | 2.6301 ms |
| bitcode 0.6.9 | 132.70 µs | 1.2688 ms | 170.84 µs | 327688 | 200947 | 182040 | 846.20 µs |
| borsh 1.7.0 | 559.24 µs | 1.7910 ms | † | 446595 | 234236 | 209834 | 2.2840 ms |
| capnp: capnp 0.26.0 |
478.31 µs 1.0444 ms* | † | † | 803896 489017* | 335606 293127* | 280744 271528* | 3.6600 ms 2.7039 ms* |
| cbor: cbor4ii 1.2.2 |
712.07 µs | 4.3662 ms | 3.2519 ms | 1109831 | 344745 | 274333 | 3.6311 ms |
| cbor: ciborium 0.2.2 |
3.7777 ms | 9.9773 ms | † | 1109821 | 344751 | 274345 | 3.5332 ms |
| cbor: serde_cbor 0.11.2 |
1.8692 ms | 4.6801 ms | 3.3214 ms | 1109821 | 344751 | 274345 | 3.6750 ms |
| columnar 0.13.1 | 255.25 µs | 1.8879 ms 713.35 µs* | † | 563392 | 249619 | 217632 | 1.6329 ms |
| compactly 0.1.7 | 9.4512 ms | 6.5794 ms | † | 148461 | 148599 | 148473 | 156.44 µs |
| databuf 0.5.0 | 290.16 µs | 1.7499 ms | 810.97 µs | 356311 | 213062 | 198403 | 2.0729 ms |
| dlhn 0.1.7 | 686.78 µs | 2.6205 ms | † | 366496 | 220600 | 205586 | 2.2028 ms |
| flatbuffers 25.12.19 | 3.3053 ms | † | † | 849472 | 347816 | 294871 | 3.7436 ms |
| flexbuffers 25.12.19 | 7.8185 ms | 7.3438 ms | 5.9145 ms | 1187688 | 557642 | 553730 | 6.6404 ms |
| json: flexon 0.4.6 |
2.7482 ms | 4.5871 ms | † | 1623191 | 466527 | 359157 | 5.8733 ms |
| json: serde_json 1.0.150 |
3.7299 ms | 6.8515 ms | † | 1623191 | 466527 | 359157 | 5.9280 ms |
| json: simd-json 0.17.0 |
2.2560 ms | 4.6873 ms | † | 1623191 | 466527 | 359157 | 5.8760 ms |
| messagepack: msgpacker 0.7.1 |
329.77 µs | 2.8090 ms | 1.3029 ms | 391251 | 236877 | 220395 | 2.3099 ms |
| messagepack: rmp-serde 1.3.1 |
1.5707 ms | 2.9853 ms | 1.7083 ms | 424533 | 245214 | 226077 | 2.3816 ms |
| messagepack: zerompk 0.6.0 |
352.19 µs | 2.0840 ms | 875.04 µs | 416025 | 243812 | 224965 | 2.3881 ms |
| minicbor 2.2.2 | 561.65 µs | 3.4058 ms | 1.8733 ms | 428773 | 249857 | 228630 | 2.4384 ms |
| nachricht-serde 0.4.0 | 4.9461 ms | 3.7970 ms | 2.6582 ms | 449745 | 252432 | 230965 | 2.4269 ms |
| nanoserde 0.2.1 | 343.20 µs | 1.8969 ms | † | 567975 | 239930 | 231872 | 2.6454 ms |
| nibblecode 0.1.0 | 176.81 µs | † | † | 603928 | 432096 | 409665 | 3.7713 ms |
| postcard 1.1.3 | 446.94 µs | 2.1642 ms | 831.08 µs | 367489 | 221913 | 207244 | 2.1388 ms |
| pot 3.0.1 | 2.3978 ms | 5.3772 ms | 4.1913 ms | 599125 | 299158 | 247675 | 2.7615 ms |
| protobuf: buffa 0.8.0 |
985.48 µs* 3.0724 ms* | 3.4350 ms* 3.6190 ms* | 2.8047 ms | 596811 | 305319 | 268737 | 3.1535 ms |
| protobuf: prost 0.14.4 |
1.3023 ms* 3.0681 ms* | 3.4978 ms* 3.6085 ms* | † | 596811 | 305319 | 268737 | 3.0832 ms |
| protobuf: protobuf 3.7.2 |
1.0697 ms* 3.0627 ms* | 3.9062 ms* 4.1167 ms* | † | 596811 | 305319 | 268737 | 3.0987 ms |
| protobuf: protobuf 4.35.1-release |
1.9943 ms* 9.2439 ms* | 6.8336 ms* 3.0375 ms* | † | 596811 | 305319 | 268737 | 3.3156 ms |
| rkyv 0.8.16 | 332.03 µs | 1.5245 ms* 1.8621 ms* | † | 603776 | 254776 | 219421 | 2.4617 ms |
| ron 0.12.2 | 8.3788 ms | 27.538 ms | 25.945 ms | 1465223 | 434935 | 342907 | 5.8679 ms |
| savefile 0.20.4 | 214.67 µs | 1.8383 ms | † | 566991 | 239362 | 231478 | 2.5495 ms |
| scale: parity-scale-codec 3.7.5 |
655.28 µs | 2.1023 ms | † | 356311 | 212976 | 198423 | 2.0452 ms |
| serde-brief 0.2.0 | 1.1734 ms | 5.1169 ms | 3.4714 ms | 1276014 | 373898 | 293384 | 3.7975 ms |
| serde_bare 0.5.0 | 720.04 µs | 2.3468 ms | † | 356311 | 213062 | 198403 | 2.0638 ms |
| speedy 0.8.7 | 271.08 µs | 1.6727 ms | 556.78 µs | 449595 | 234970 | 210192 | 2.1547 ms |
| wincode 0.5.5 | 207.90 µs | 1.6420 ms | 553.64 µs | 566975 | 239350 | 231475 | 2.6293 ms |
| wiring 0.2.4 | 208.10 µs | 1.8902 ms | † | 566975 | 247810 | 225086 | 2.6262 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
63.558 ns* | 567.45 µs* 402.65 ns* | ‡ |
| columnar 0.13.1 | 706.37 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.4903 ns* 2.1545 ms* | 1.4231 µs* 2.1568 ms* | ‡ |
| nibblecode 0.1.0 | 1.2448 ns* 259.48 µs* | 156.23 ns* 260.04 µs* | 726.48 ns* |
| rkyv 0.8.16 | 1.2445 ns* 339.10 µs* | 156.20 ns* 338.80 µs* | 726.51 ns* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Borrow | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 15.16%* 16.59%* | 22.92% | 9.85% | 30.34% | 52.85% | 59.54% | 5.85% |
| bin-proto 0.12.8 | 6.95% | 24.64% | † | 26.18% | 62.08% | 64.14% | 6.02% |
| bincode 2.0.1 | 39.24% | 39.04% | 21.82% | 40.41% | 67.15% | 71.99% | 7.35% |
| bincode 1.3.3 | 22.47% | 38.61% | 19.35% | 26.05% | 61.78% | 64.03% | 5.95% |
| bitcode 0.6.9 | 100.00% | 56.22% | 100.00% | 45.31% | 73.95% | 81.56% | 18.49% |
| borsh 1.7.0 | 23.73% | 39.83% | † | 33.24% | 63.44% | 70.76% | 6.85% |
| capnp: capnp 0.26.0 |
27.74% 12.71%* | † | † | 18.47% 30.36%* | 44.28% 50.69%* | 52.89% 54.68%* | 4.27% 5.79%* |
| cbor: cbor4ii 1.2.2 |
18.64% | 16.34% | 5.25% | 13.38% | 43.10% | 54.12% | 4.31% |
| cbor: ciborium 0.2.2 |
3.51% | 7.15% | † | 13.38% | 43.10% | 54.12% | 4.43% |
| cbor: serde_cbor 0.11.2 |
7.10% | 15.24% | 5.14% | 13.38% | 43.10% | 54.12% | 4.26% |
| columnar 0.13.1 | 51.99% | 37.79% 100.00%* | † | 26.35% | 59.53% | 68.22% | 9.58% |
| compactly 0.1.7 | 1.40% | 10.84% | † | 100.00% | 100.00% | 100.00% | 100.00% |
| databuf 0.5.0 | 45.73% | 40.77% | 21.07% | 41.67% | 69.74% | 74.83% | 7.55% |
| dlhn 0.1.7 | 19.32% | 27.22% | † | 40.51% | 67.36% | 72.22% | 7.10% |
| flatbuffers 25.12.19 | 4.01% | † | † | 17.48% | 42.72% | 50.35% | 4.18% |
| flexbuffers 25.12.19 | 1.70% | 9.71% | 2.89% | 12.50% | 26.65% | 26.81% | 2.36% |
| json: flexon 0.4.6 |
4.83% | 15.55% | † | 9.15% | 31.85% | 41.34% | 2.66% |
| json: serde_json 1.0.150 |
3.56% | 10.41% | † | 9.15% | 31.85% | 41.34% | 2.64% |
| json: simd-json 0.17.0 |
5.88% | 15.22% | † | 9.15% | 31.85% | 41.34% | 2.66% |
| messagepack: msgpacker 0.7.1 |
40.24% | 25.40% | 13.11% | 37.95% | 62.73% | 67.37% | 6.77% |
| messagepack: rmp-serde 1.3.1 |
8.45% | 23.90% | 10.00% | 34.97% | 60.60% | 65.67% | 6.57% |
| messagepack: zerompk 0.6.0 |
37.68% | 34.23% | 19.52% | 35.69% | 60.95% | 66.00% | 6.55% |
| minicbor 2.2.2 | 23.63% | 20.95% | 9.12% | 34.62% | 59.47% | 64.94% | 6.42% |
| nachricht-serde 0.4.0 | 2.68% | 18.79% | 6.43% | 33.01% | 58.87% | 64.28% | 6.45% |
| nanoserde 0.2.1 | 38.67% | 37.61% | † | 26.14% | 61.93% | 64.03% | 5.91% |
| nibblecode 0.1.0 | 75.05% | † | † | 24.58% | 34.39% | 36.24% | 4.15% |
| postcard 1.1.3 | 29.69% | 32.96% | 20.56% | 40.40% | 66.96% | 71.64% | 7.31% |
| pot 3.0.1 | 5.53% | 13.27% | 4.08% | 24.78% | 49.67% | 59.95% | 5.67% |
| protobuf: buffa 0.8.0 |
13.47%* 4.32%* | 20.77%* 19.71%* | 6.09% | 24.88% | 48.67% | 55.25% | 4.96% |
| protobuf: prost 0.14.4 |
10.19%* 4.33%* | 20.39%* 19.77%* | † | 24.88% | 48.67% | 55.25% | 5.07% |
| protobuf: protobuf 3.7.2 |
12.41%* 4.33%* | 18.26%* 17.33%* | † | 24.88% | 48.67% | 55.25% | 5.05% |
| protobuf: protobuf 4.35.1-release |
6.65%* 1.44%* | 10.44%* 23.48%* | † | 24.88% | 48.67% | 55.25% | 4.72% |
| rkyv 0.8.16 | 39.97% | 46.79%* 38.31%* | † | 24.59% | 58.33% | 67.67% | 6.36% |
| ron 0.12.2 | 1.58% | 2.59% | 0.66% | 10.13% | 34.17% | 43.30% | 2.67% |
| savefile 0.20.4 | 61.82% | 38.80% | † | 26.18% | 62.08% | 64.14% | 6.14% |
| scale: parity-scale-codec 3.7.5 |
20.25% | 33.93% | † | 41.67% | 69.77% | 74.83% | 7.65% |
| serde-brief 0.2.0 | 11.31% | 13.94% | 4.92% | 11.63% | 39.74% | 50.61% | 4.12% |
| serde_bare 0.5.0 | 18.43% | 30.40% | † | 41.67% | 69.74% | 74.83% | 7.58% |
| speedy 0.8.7 | 48.95% | 42.65% | 30.68% | 33.02% | 63.24% | 70.64% | 7.26% |
| wincode 0.5.5 | 63.83% | 43.44% | 30.86% | 26.18% | 62.08% | 64.14% | 5.95% |
| wiring 0.2.4 | 63.77% | 37.74% | † | 26.18% | 59.96% | 65.96% | 5.96% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
1.96%* | 0.03%* 38.79%* | ‡ |
| columnar 0.13.1 | 0.18% | ‡ | ‡ |
| flatbuffers 25.12.19 | 49.97%* 0.00%* | 10.98%* 0.01%* | ‡ |
| nibblecode 0.1.0 | 99.98%* 0.00%* | 99.98%* 0.06%* | 100.00%* |
| rkyv 0.8.16 | 100.00%* 0.00%* | 100.00%* 0.05%* | 100.00%* |
mk48This data set is composed of mk48.io game updates that contain data with many exploitable patterns and invariants.
For operations, time per iteration; for size, bytes. Lower is better.
| Crate | Serialize | Deserialize | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 4.6025 ms* 2.5483 ms* | 8.6840 ms | 1704643 | 1294259 | 1245668 | 12.574 ms |
| bin-proto 0.12.8 | 5.4955 ms | 7.0022 ms | 1791489 | 1127998 | 1051146 | 10.770 ms |
| bincode 2.0.1 | 1.3219 ms | 3.9841 ms | 1406257 | 1117802 | 1062438 | 9.8102 ms |
| bincode 1.3.3 | 3.8805 ms | 4.2731 ms | 1854234 | 1141994 | 1048745 | 10.692 ms |
| bitcode 0.6.9 | 691.13 µs | 2.3714 ms | 971318 | 878034 | 850340 | 3.1162 ms |
| borsh 1.7.0 | 2.9574 ms | 2.8304 ms | 1521989 | 1108471 | 1038528 | 10.444 ms |
| capnp: capnp 0.26.0 |
2.6572 ms 4.5483 ms* | † | 2724288 1616255* | 1546992 1278764* | 1239111 1125654* | 15.471 ms 8.9509 ms* |
| cbor: cbor4ii 1.2.2 |
2.9380 ms | 16.982 ms | 6012539 | 1695215 | 1464951 | 21.706 ms |
| cbor: ciborium 0.2.2 |
22.951 ms | 53.038 ms | 6012373 | 1695146 | 1465025 | 21.866 ms |
| cbor: serde_cbor 0.11.2 |
10.263 ms | 20.453 ms | 6012373 | 1695146 | 1465025 | 22.240 ms |
| columnar 0.13.1 | 866.97 µs | 3.8027 ms 1.2449 ms* | 1544720 | 996718 | 896213 | 4.9845 ms |
| compactly 0.1.7 | 54.348 ms | 33.663 ms | 800772 | 801349 | 800799 | 369.61 µs |
| databuf 0.5.0 | 1.3276 ms | 3.8444 ms | 1319999 | 1062631 | 1008334 | 9.3086 ms |
| dlhn 0.1.7 | 4.3873 ms | 6.7038 ms | 1311281 | 1077520 | 1046095 | 8.9632 ms |
| flatbuffers 25.12.19 | 5.0008 ms | † | 2325620 | 1439185 | 1268060 | 13.968 ms |
| flexbuffers 25.12.19 | 39.716 ms | 35.626 ms | 5352680 | 2658295 | 2777967 | 35.530 ms |
| json: flexon 0.4.6 |
15.437 ms | 24.719 ms | 9390461 | 2391679 | 1842767 | 35.548 ms |
| json: serde_json 1.0.150 |
21.197 ms | 32.106 ms | 9390461 | 2391679 | 1842767 | 36.098 ms |
| json: simd-json 0.17.0 |
12.187 ms | 26.231 ms | 9390461 | 2391679 | 1842767 | 35.591 ms |
| messagepack: msgpacker 0.7.1 |
939.23 µs | 5.5193 ms | 1458773 | 1156055 | 1137788 | 10.115 ms |
| messagepack: rmp-serde 1.3.1 |
10.762 ms | 11.284 ms | 1745322 | 1261627 | 1228923 | 12.070 ms |
| messagepack: zerompk 0.6.0 |
1.1275 ms | 4.1995 ms | 1717696 | 1234725 | 1195988 | 11.762 ms |
| minicbor 2.2.2 | 2.3698 ms | 11.596 ms | 1777386 | 1276218 | 1252558 | 12.898 ms |
| nachricht-serde 0.4.0 | 29.591 ms | 16.165 ms | 1770060 | 1277755 | 1263362 | 12.528 ms |
| nanoserde 0.2.1 | 1.2951 ms | 2.7601 ms | 1812404 | 1134820 | 1053109 | 10.828 ms |
| nibblecode 0.1.0 | 509.65 µs | † | 2075936 | 1503435 | 1396519 | 14.307 ms |
| postcard 1.1.3 | 1.8150 ms | 4.2379 ms | 1311281 | 1083900 | 1041434 | 9.1563 ms |
| pot 3.0.1 | 14.310 ms | 26.212 ms | 2604812 | 1482233 | 1298928 | 16.335 ms |
| protobuf: buffa 0.8.0 |
3.7834 ms* 12.525 ms* | 16.438 ms* 17.431 ms* | 1859886 | 1338076 | 1295351 | 12.731 ms |
| protobuf: prost 0.14.4 |
5.5492 ms* 9.7214 ms* | 9.2120 ms* 10.238 ms* | 1859886 | 1338076 | 1295351 | 12.591 ms |
| protobuf: protobuf 3.7.2 |
6.1948 ms* 14.349 ms* | 13.542 ms* 14.988 ms* | 1859886 | 1338076 | 1295351 | 12.825 ms |
| protobuf: protobuf 4.35.1-release |
14.820 ms* 34.805 ms* | 25.345 ms* 10.769 ms* | 1859886 | 1338076 | 1295351 | 12.800 ms |
| rkyv 0.8.16 | 983.00 µs | 2.2427 ms* 2.7665 ms* | 2075936 | 1383779 | 1210377 | 13.679 ms |
| ron 0.12.2 | 42.057 ms | 171.91 ms | 8677703 | 2233642 | 1826180 | 35.479 ms |
| savefile 0.20.4 | 876.98 µs | 2.8378 ms | 1791505 | 1128012 | 1051153 | 10.749 ms |
| scale: parity-scale-codec 3.7.5 |
3.2097 ms | 3.5676 ms | 1319999 | 1064380 | 1010708 | 9.2290 ms |
| serde-brief 0.2.0 | 5.4284 ms | 20.873 ms | 6951772 | 1796265 | 1567819 | 24.013 ms |
| serde_bare 0.5.0 | 4.0463 ms | 5.0736 ms | 1319999 | 1062645 | 1008349 | 9.2874 ms |
| speedy 0.8.7 | 770.15 µs | 2.4673 ms | 1584734 | 1119837 | 1037992 | 10.605 ms |
| wincode 0.5.5 | 570.84 µs | 2.3287 ms | 1791489 | 1127998 | 1051146 | 10.646 ms |
| wiring 0.2.4 | 650.72 µs | 2.7582 ms | 1791489 | 1156963 | 1082815 | 11.024 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
65.807 ns* | 1.9203 ms* 712.54 ns* | ‡ |
| columnar 0.13.1 | 52.235 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.4897 ns* 5.5392 ms* | 2.7817 µs* 5.5506 ms* | ‡ |
| nibblecode 0.1.0 | 1.2450 ns* 350.05 µs* | 385.04 ns* 349.88 µs* | 240.34 ns* |
| rkyv 0.8.16 | 1.2450 ns* 464.22 µs* | 385.29 ns* 465.52 µs* | 237.95 ns* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 11.07%* 20.00%* | 14.34% | 46.98% | 61.92% | 64.29% | 2.94% |
| bin-proto 0.12.8 | 9.27% | 17.78% | 44.70% | 71.04% | 76.18% | 3.43% |
| bincode 2.0.1 | 38.55% | 31.25% | 56.94% | 71.69% | 75.37% | 3.77% |
| bincode 1.3.3 | 13.13% | 29.13% | 43.19% | 70.17% | 76.36% | 3.46% |
| bitcode 0.6.9 | 73.74% | 52.50% | 82.44% | 91.27% | 94.17% | 11.86% |
| borsh 1.7.0 | 17.23% | 43.98% | 52.61% | 72.29% | 77.11% | 3.54% |
| capnp: capnp 0.26.0 |
19.18% 11.21%* | † | 29.39% 49.54%* | 51.80% 62.67%* | 64.63% 71.14%* | 2.39% 4.13%* |
| cbor: cbor4ii 1.2.2 |
17.35% | 7.33% | 13.32% | 47.27% | 54.66% | 1.70% |
| cbor: ciborium 0.2.2 |
2.22% | 2.35% | 13.32% | 47.27% | 54.66% | 1.69% |
| cbor: serde_cbor 0.11.2 |
4.97% | 6.09% | 13.32% | 47.27% | 54.66% | 1.66% |
| columnar 0.13.1 | 58.79% | 32.74% 100.00%* | 51.84% | 80.40% | 89.35% | 7.42% |
| compactly 0.1.7 | 0.94% | 3.70% | 100.00% | 100.00% | 100.00% | 100.00% |
| databuf 0.5.0 | 38.39% | 32.38% | 60.66% | 75.41% | 79.42% | 3.97% |
| dlhn 0.1.7 | 11.62% | 18.57% | 61.07% | 74.37% | 76.55% | 4.12% |
| flatbuffers 25.12.19 | 10.19% | † | 34.43% | 55.68% | 63.15% | 2.65% |
| flexbuffers 25.12.19 | 1.28% | 3.49% | 14.96% | 30.15% | 28.83% | 1.04% |
| json: flexon 0.4.6 |
3.30% | 5.04% | 8.53% | 33.51% | 43.46% | 1.04% |
| json: serde_json 1.0.150 |
2.40% | 3.88% | 8.53% | 33.51% | 43.46% | 1.02% |
| json: simd-json 0.17.0 |
4.18% | 4.75% | 8.53% | 33.51% | 43.46% | 1.04% |
| messagepack: msgpacker 0.7.1 |
54.26% | 22.56% | 54.89% | 69.32% | 70.38% | 3.65% |
| messagepack: rmp-serde 1.3.1 |
4.74% | 11.03% | 45.88% | 63.52% | 65.16% | 3.06% |
| messagepack: zerompk 0.6.0 |
45.20% | 29.64% | 46.62% | 64.90% | 66.96% | 3.14% |
| minicbor 2.2.2 | 21.51% | 10.74% | 45.05% | 62.79% | 63.93% | 2.87% |
| nachricht-serde 0.4.0 | 1.72% | 7.70% | 45.24% | 62.72% | 63.39% | 2.95% |
| nanoserde 0.2.1 | 39.35% | 45.10% | 44.18% | 70.61% | 76.04% | 3.41% |
| nibblecode 0.1.0 | 100.00% | † | 38.57% | 53.30% | 57.34% | 2.58% |
| postcard 1.1.3 | 28.08% | 29.38% | 61.07% | 73.93% | 76.89% | 4.04% |
| pot 3.0.1 | 3.56% | 4.75% | 30.74% | 54.06% | 61.65% | 2.26% |
| protobuf: buffa 0.8.0 |
13.47%* 4.07%* | 7.57%* 7.14%* | 43.05% | 59.89% | 61.82% | 2.90% |
| protobuf: prost 0.14.4 |
9.18%* 5.24%* | 13.51%* 12.16%* | 43.05% | 59.89% | 61.82% | 2.94% |
| protobuf: protobuf 3.7.2 |
8.23%* 3.55%* | 9.19%* 8.31%* | 43.05% | 59.89% | 61.82% | 2.88% |
| protobuf: protobuf 4.35.1-release |
3.44%* 1.46%* | 4.91%* 11.56%* | 43.05% | 59.89% | 61.82% | 2.89% |
| rkyv 0.8.16 | 51.85% | 55.51%* 45.00%* | 38.57% | 57.91% | 66.16% | 2.70% |
| ron 0.12.2 | 1.21% | 0.72% | 9.23% | 35.88% | 43.85% | 1.04% |
| savefile 0.20.4 | 58.11% | 43.87% | 44.70% | 71.04% | 76.18% | 3.44% |
| scale: parity-scale-codec 3.7.5 |
15.88% | 34.89% | 60.66% | 75.29% | 79.23% | 4.00% |
| serde-brief 0.2.0 | 9.39% | 5.96% | 11.52% | 44.61% | 51.08% | 1.54% |
| serde_bare 0.5.0 | 12.60% | 24.54% | 60.66% | 75.41% | 79.42% | 3.98% |
| speedy 0.8.7 | 66.18% | 50.46% | 50.53% | 71.56% | 77.15% | 3.49% |
| wincode 0.5.5 | 89.28% | 53.46% | 44.70% | 71.04% | 76.18% | 3.47% |
| wiring 0.2.4 | 78.32% | 45.13% | 44.70% | 69.26% | 73.96% | 3.35% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.26.0 |
1.89%* | 0.02%* 54.04%* | ‡ |
| columnar 0.13.1 | 2.38% | ‡ | ‡ |
| flatbuffers 25.12.19 | 50.01%* 0.00%* | 13.84%* 0.01%* | ‡ |
| nibblecode 0.1.0 | 100.00%* 0.00%* | 100.00%* 0.11%* | 99.01%* |
| rkyv 0.8.16 | 100.00%* 0.00%* | 99.94%* 0.08%* | 100.00%* |
* mouse over for situational details
† this deserialization capability is not supported
‡ buffer mutation is not supported (capnp and flatbuffers may but not for rust)