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):
- Serialize: serialize data into a buffer
- Deserialize: deserializes a buffer into a normal rust object
- Borrow: deserializes a buffer into a rust object that borrows string data from the input, with lifetime
- Size: the size of the buffer when serialized
- Zlib: the size of the buffer after zlib compression
- Zstd: the size of the buffer after zstd compression
- Zstd Time: the time taken to compress the serialized buffer with zstd
Zero-copy deserialization libraries have an additional set of benchmarks:
- Access: accesses a buffer as structured data
- Read: runs through a buffer and reads fields out of it
- Update: updates a buffer as structured data
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:
- (populate): copying or converting from the "regular" input type to the type generated by the library
- (convert): copying or converting back from the library's generated type to the "regular" input type after deserializing
Other footnotes are located at the bottom of the page.
Runtime info
rustc 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
This 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%* |
This 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%* |
This 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%* |
This 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)