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 (84b36a78a 2026-08-06)
binary: rustc
commit-hash: 84b36a78a28a63f134171c670be1932ffa2485f8
commit-date: 2026-08-06
host: x86_64-unknown-linux-gnu
release: 1.99.0-nightly
LLVM version: 23.1.0
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 9V74 80-Core Processor
CPU family: 25
Model: 17
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Stepping: 1
BogoMIPS: 5192.24
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 xtopology 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 avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves user_shstk avx512_bf16 clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq 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: 2 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 | 332.38 µs* 276.04 µs* | 2.0963 ms | 740.93 µs | 804955 | 328941 | 284849 | 3.1077 ms |
| bin-proto 0.12.8 | 3.4356 ms | 3.6508 ms | † | 1045784 | 373127 | 311553 | 3.4072 ms |
| bincode 2.0.1 | 293.11 µs | 1.7504 ms | 569.45 µs | 741295 | 303944 | 256422 | 2.8281 ms |
| bincode 1.3.3 | 464.75 µs | 1.6158 ms | 495.21 µs | 1045784 | 373127 | 311553 | 3.6551 ms |
| bitcode 0.6.9 | 95.792 µs | 1.1430 ms | 48.788 µs | 703710 | 288826 | 227322 | 1.9864 ms |
| borsh 1.8.0 | 481.77 µs | 1.6997 ms | † | 885780 | 362204 | 286248 | 3.1120 ms |
| capnp: capnp 0.27.0 |
480.71 µs 1.2260 ms* | † | † | 1443216 1046865* | 513986 481681* | 426532 458024* | 4.5376 ms 4.2114 ms* |
| cbor: cbor4ii 1.2.2 |
434.41 µs | 4.2607 ms | 3.0099 ms | 1407835 | 403440 | 323561 | 3.5488 ms |
| cbor: ciborium 0.2.2 |
2.4626 ms | 10.694 ms | † | 1407835 | 403440 | 323561 | 3.5892 ms |
| cbor: serde_cbor 0.11.2 |
1.5733 ms | 3.6718 ms | 2.4975 ms | 1407835 | 403440 | 323561 | 3.5631 ms |
| columnar 0.13.1 | 184.99 µs | 1.7061 ms 630.09 µs* | † | 1045928 | 370212 | 293907 | 3.0797 ms |
| compactly 0.1.7 | 20.356 ms | 13.831 ms | † | 239520 | 239720 | 239532 | 119.02 µs |
| databuf 0.5.0 | 203.89 µs | 1.6205 ms | 574.48 µs | 765778 | 311715 | 263914 | 2.5096 ms |
| dlhn 0.1.7 | 584.33 µs | 2.0570 ms | † | 724953 | 301446 | 253056 | 2.3005 ms |
| flatbuffers 25.12.19 | 757.19 µs | † | † | 1276368 | 468539 | 388381 | 3.6139 ms |
| flexbuffers 25.12.19 | 5.2451 ms | 6.0013 ms | 4.9118 ms | 1829756 | 714318 | 691541 | 6.2047 ms |
| json: flexon 0.4.8 |
1.8931 ms | 2.9340 ms | † | 1827461 | 470560 | 360727 | 4.1817 ms |
| json: serde_json 1.0.151 |
3.2065 ms | 4.9455 ms | † | 1827461 | 470560 | 360727 | 4.2973 ms |
| json: simd-json 0.17.3 |
1.9662 ms | 3.7286 ms | † | 1827461 | 470560 | 360727 | 4.1703 ms |
| messagepack: msgpacker 0.7.1 |
261.19 µs | 2.0569 ms | 773.14 µs | 764996 | 315291 | 264212 | 2.5870 ms |
| messagepack: rmp-serde 1.3.1 |
1.2639 ms | 2.4896 ms | 1.0900 ms | 784997 | 325384 | 277608 | 2.7339 ms |
| messagepack: zerompk 0.7.1 |
288.48 µs | 1.7481 ms | 572.64 µs | 784997 | 325384 | 277608 | 2.7242 ms |
| minicbor 2.3.0 | 397.34 µs | 2.3760 ms | 1.0544 ms | 817830 | 332671 | 284034 | 2.9421 ms |
| nachricht-serde 0.4.0 | 4.3798 ms | 3.2788 ms | 2.0819 ms | 818669 | 332556 | 284797 | 2.9332 ms |
| nanoserde 0.2.1 | 186.65 µs | 1.7605 ms | † | 1045784 | 373127 | 311553 | 3.1287 ms |
| nibblecode 0.1.0 | 137.19 µs | † | † | 1011487 | 492118 | 426148 | 3.9627 ms |
| postcard 1.1.3 | 365.36 µs | 1.8405 ms | 612.43 µs | 724953 | 302399 | 252968 | 2.3287 ms |
| pot 3.0.1 | 1.9031 ms | 4.7888 ms | 3.7534 ms | 971922 | 372513 | 303636 | 3.2803 ms |
| protobuf: buffa 0.9.1 |
703.06 µs* 1.8673 ms* | 2.7970 ms* 2.8747 ms* | 1.5411 ms | 884628 | 363130 | 314959 | 3.1603 ms |
| protobuf: prost 0.14.4 |
700.48 µs* 1.8931 ms* | 2.7285 ms* 2.7499 ms* | † | 884628 | 363130 | 314959 | 3.2108 ms |
| protobuf: protobuf 3.7.2 |
839.06 µs* 2.2992 ms* | 3.1676 ms* 3.2012 ms* | † | 884628 | 363130 | 314959 | 3.1756 ms |
| protobuf: protobuf 4.35.1-release |
1.3708 ms* 5.5955 ms* | 5.9706 ms* 2.4620 ms* | † | 884628 | 363130 | 314959 | 3.2565 ms |
| rkyv 0.8.18 | 179.32 µs | 1.2328 ms* 1.5322 ms* | † | 1011488 | 393526 | 325965 | 3.3651 ms |
| ron 0.12.2 | 9.0529 ms | 23.703 ms | 21.214 ms | 1607459 | 449158 | 349324 | 4.2910 ms |
| savefile 0.20.5 | 155.45 µs | 1.6762 ms | † | 1045800 | 373139 | 311562 | 3.1057 ms |
| scale: parity-scale-codec 3.7.5 |
556.29 µs | 1.9617 ms | † | 765778 | 311743 | 263822 | 2.6219 ms |
| serde-brief 0.2.0 | 1.2159 ms | 3.9039 ms | 2.3407 ms | 1584946 | 413733 | 339964 | 3.7912 ms |
| serde-zap 0.1.0 | 141.96 µs | 1.7669 ms | 436.42 µs | 741295 | 303944 | 256422 | 2.4197 ms |
| serde_bare 0.5.0 | 569.74 µs | 1.6500 ms | † | 765778 | 311715 | 263914 | 2.5447 ms |
| speedy 0.8.7 | 153.12 µs | 1.3994 ms | 300.55 µs | 885780 | 362204 | 286248 | 2.8370 ms |
| wincode 0.6.0 | 140.61 µs | 1.4340 ms | 302.08 µs | 1045784 | 373127 | 311553 | 3.0649 ms |
| wiring 0.2.4 | 141.66 µs | 1.6786 ms | † | 1045784 | 337930 | 275808 | 2.7161 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
63.567 ns* | 845.44 µs* 117.86 µs* | ‡ |
| columnar 0.13.1 | 8.4204 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.1816 ns* 1.9122 ms* | 42.081 µs* 2.0007 ms* | ‡ |
| nibblecode 0.1.0 | 1.0911 ns* 74.981 µs* | 8.3467 µs* 83.206 µs* | 4.8732 µs* |
| rkyv 0.8.18 | 1.0914 ns* 292.13 µs* | 8.3417 µs* 300.46 µs* | 4.8604 µs* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Borrow | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 28.82%* 34.70%* | 30.06% | 6.58% | 29.76% | 72.88% | 79.80% | 3.83% |
| bin-proto 0.12.8 | 2.79% | 17.26% | † | 22.90% | 64.25% | 72.96% | 3.49% |
| bincode 2.0.1 | 32.68% | 36.00% | 8.57% | 32.31% | 78.87% | 88.65% | 4.21% |
| bincode 1.3.3 | 20.61% | 39.00% | 9.85% | 22.90% | 64.25% | 72.96% | 3.26% |
| bitcode 0.6.9 | 100.00% | 55.13% | 100.00% | 34.04% | 83.00% | 100.00% | 5.99% |
| borsh 1.8.0 | 19.88% | 37.07% | † | 27.04% | 66.18% | 79.41% | 3.82% |
| capnp: capnp 0.27.0 |
19.93% 7.81%* | † | † | 16.60% 22.88%* | 46.64% 49.77%* | 53.30% 49.63%* | 2.62% 2.83%* |
| cbor: cbor4ii 1.2.2 |
22.05% | 14.79% | 1.62% | 17.01% | 59.42% | 70.26% | 3.35% |
| cbor: ciborium 0.2.2 |
3.89% | 5.89% | † | 17.01% | 59.42% | 70.26% | 3.32% |
| cbor: serde_cbor 0.11.2 |
6.09% | 17.16% | 1.95% | 17.01% | 59.42% | 70.26% | 3.34% |
| columnar 0.13.1 | 51.78% | 36.93% 100.00%* | † | 22.90% | 64.75% | 77.34% | 3.86% |
| compactly 0.1.7 | 0.47% | 4.56% | † | 100.00% | 100.00% | 94.90% | 100.00% |
| databuf 0.5.0 | 46.98% | 38.88% | 8.49% | 31.28% | 76.90% | 86.13% | 4.74% |
| dlhn 0.1.7 | 16.39% | 30.63% | † | 33.04% | 79.52% | 89.83% | 5.17% |
| flatbuffers 25.12.19 | 12.65% | † | † | 18.77% | 51.16% | 58.53% | 3.29% |
| flexbuffers 25.12.19 | 1.83% | 10.50% | 0.99% | 13.09% | 33.56% | 32.87% | 1.92% |
| json: flexon 0.4.8 |
5.06% | 21.48% | † | 13.11% | 50.94% | 63.02% | 2.85% |
| json: serde_json 1.0.151 |
2.99% | 12.74% | † | 13.11% | 50.94% | 63.02% | 2.77% |
| json: simd-json 0.17.3 |
4.87% | 16.90% | † | 13.11% | 50.94% | 63.02% | 2.85% |
| messagepack: msgpacker 0.7.1 |
36.68% | 30.63% | 6.31% | 31.31% | 76.03% | 86.04% | 4.60% |
| messagepack: rmp-serde 1.3.1 |
7.58% | 25.31% | 4.48% | 30.51% | 73.67% | 81.89% | 4.35% |
| messagepack: zerompk 0.7.1 |
33.21% | 36.04% | 8.52% | 30.51% | 73.67% | 81.89% | 4.37% |
| minicbor 2.3.0 | 24.11% | 26.52% | 4.63% | 29.29% | 72.06% | 80.03% | 4.05% |
| nachricht-serde 0.4.0 | 2.19% | 19.22% | 2.34% | 29.26% | 72.08% | 79.82% | 4.06% |
| nanoserde 0.2.1 | 51.32% | 35.79% | † | 22.90% | 64.25% | 72.96% | 3.80% |
| nibblecode 0.1.0 | 69.82% | † | † | 23.68% | 48.71% | 53.34% | 3.00% |
| postcard 1.1.3 | 26.22% | 34.23% | 7.97% | 33.04% | 79.27% | 89.86% | 5.11% |
| pot 3.0.1 | 5.03% | 13.16% | 1.30% | 24.64% | 64.35% | 74.87% | 3.63% |
| protobuf: buffa 0.9.1 |
13.63%* 5.13%* | 22.53%* 21.92%* | 3.17% | 27.08% | 66.01% | 72.18% | 3.77% |
| protobuf: prost 0.14.4 |
13.68%* 5.06%* | 23.09%* 22.91%* | † | 27.08% | 66.01% | 72.18% | 3.71% |
| protobuf: protobuf 3.7.2 |
11.42%* 4.17%* | 19.89%* 19.68%* | † | 27.08% | 66.01% | 72.18% | 3.75% |
| protobuf: protobuf 4.35.1-release |
6.99%* 1.71%* | 10.55%* 25.59%* | † | 27.08% | 66.01% | 72.18% | 3.65% |
| rkyv 0.8.18 | 53.42% | 51.11%* 41.12%* | † | 23.68% | 60.92% | 69.74% | 3.54% |
| ron 0.12.2 | 1.06% | 2.66% | 0.23% | 14.90% | 53.37% | 65.07% | 2.77% |
| savefile 0.20.5 | 61.62% | 37.59% | † | 22.90% | 64.24% | 72.96% | 3.83% |
| scale: parity-scale-codec 3.7.5 |
17.22% | 32.12% | † | 31.28% | 76.90% | 86.16% | 4.54% |
| serde-brief 0.2.0 | 7.88% | 16.14% | 2.08% | 15.11% | 57.94% | 66.87% | 3.14% |
| serde-zap 0.1.0 | 67.48% | 35.66% | 11.18% | 32.31% | 78.87% | 88.65% | 4.92% |
| serde_bare 0.5.0 | 16.81% | 38.19% | † | 31.28% | 76.90% | 86.13% | 4.68% |
| speedy 0.8.7 | 62.56% | 45.03% | 16.23% | 27.04% | 66.18% | 79.41% | 4.20% |
| wincode 0.6.0 | 68.13% | 43.94% | 16.15% | 22.90% | 64.25% | 72.96% | 3.88% |
| wiring 0.2.4 | 67.62% | 37.54% | † | 22.90% | 70.94% | 82.42% | 4.38% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
1.72%* | 0.99%* 7.08%* | ‡ |
| columnar 0.13.1 | 12.96% | ‡ | ‡ |
| flatbuffers 25.12.19 | 50.01%* 0.00%* | 19.82%* 0.42%* | ‡ |
| nibblecode 0.1.0 | 100.00%* 0.00%* | 99.94%* 10.03%* | 99.74%* |
| rkyv 0.8.18 | 99.97%* 0.00%* | 100.00%* 2.78%* | 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 | 4.6159 ms* 4.1995 ms* | 5.8136 ms | 8625005 | 6443961 | 6231572 | 49.670 ms |
| bin-proto 0.12.8 | 6.9785 ms | 9.2981 ms | 6000008 | 5378500 | 5346908 | 7.2997 ms |
| bincode 2.0.1 | 897.61 µs | 859.41 µs | 6000005 | 5378497 | 5346882 | 7.3744 ms |
| bincode 1.3.3 | 4.8569 ms | 3.6395 ms | 6000008 | 5378500 | 5346908 | 7.2277 ms |
| bitcode 0.6.9 | 1.2197 ms | 1.2589 ms | 6000006 | 5182295 | 4921841 | 11.159 ms |
| borsh 1.8.0 | 5.3728 ms | 3.7284 ms | 6000004 | 5378496 | 5346866 | 7.2775 ms |
| capnp: capnp 0.27.0 |
7.2563 ms 15.988 ms* | † | 14000088 10401737* | 7130367 7308001* | 6046182 7922110* | 57.990 ms 48.345 ms* |
| cbor: cbor4ii 1.2.2 |
4.8428 ms | 39.311 ms | 13125016 | 7524114 | 6757437 | 65.198 ms |
| cbor: ciborium 0.2.2 |
54.741 ms | 98.993 ms | 13122324 | 7524660 | 6759128 | 65.417 ms |
| cbor: serde_cbor 0.11.2 |
29.251 ms | 28.911 ms | 13122324 | 7524660 | 6759128 | 65.268 ms |
| columnar 0.13.1 | 1.0981 ms | 1.3100 ms 645.51 µs* | 6000120 | 5378435 | 5347039 | 7.3915 ms |
| compactly 0.1.7 | 296.11 ms | 145.84 ms | 4846788 | 4850067 | 4846905 | 1.3268 ms |
| databuf 0.5.0 | 895.60 µs | 4.8664 ms | 6000003 | 5378495 | 5346897 | 7.3547 ms |
| dlhn 0.1.7 | 5.6320 ms | 6.3985 ms | 6000003 | 5378495 | 5346897 | 7.4020 ms |
| flatbuffers 25.12.19 | 369.91 µs | † | 6000024 | 5378434 | 5346878 | 7.2382 ms |
| flexbuffers 25.12.19 | 82.931 ms | 74.378 ms | 26609424 | 11901040 | 12486322 | 108.83 ms |
| json: flexon 0.4.8 |
59.971 ms | 42.856 ms | 26192883 | 9566084 | 8584671 | 117.95 ms |
| json: serde_json 1.0.151 |
70.152 ms | 83.491 ms | 26192883 | 9566084 | 8584671 | 118.16 ms |
| json: simd-json 0.17.3 |
45.963 ms | 52.567 ms | 26192883 | 9566084 | 8584671 | 117.62 ms |
| messagepack: msgpacker 0.7.1 |
531.50 µs | 3.3448 ms | 7500005 | 6058442 | 6014500 | 8.8996 ms |
| messagepack: rmp-serde 1.3.1 |
16.572 ms | 9.2099 ms | 8125006 | 6494876 | 6391037 | 48.156 ms |
| messagepack: zerompk 0.7.1 |
657.03 µs | 1.2620 ms | 8125006 | 6494876 | 6391037 | 48.036 ms |
| minicbor 2.3.0 | 2.3377 ms | 9.4651 ms | 8125006 | 6494907 | 6390894 | 47.852 ms |
| nachricht-serde 0.4.0 | 97.009 ms | 19.842 ms | 8125037 | 6493484 | 6386940 | 48.901 ms |
| nanoserde 0.2.1 | 1.3556 ms | 826.91 µs | 6000008 | 5378500 | 5346908 | 7.2282 ms |
| nibblecode 0.1.0 | 141.61 µs | † | 6000008 | 5378500 | 5346908 | 7.3492 ms |
| postcard 1.1.3 | 413.15 µs | 5.2258 ms | 6000003 | 5378495 | 5346897 | 7.4373 ms |
| pot 3.0.1 | 33.192 ms | 47.475 ms | 10122342 | 6814618 | 6852252 | 57.664 ms |
| protobuf: buffa 0.9.1 |
5.0767 ms* 6.9736 ms* | 9.4115 ms* 9.2431 ms* | 8750000 | 6665735 | 6421877 | 50.060 ms |
| protobuf: prost 0.14.4 |
5.8614 ms* 6.2948 ms* | 9.6383 ms* 9.9551 ms* | 8750000 | 6665735 | 6421877 | 50.563 ms |
| protobuf: protobuf 3.7.2 |
11.999 ms* 25.721 ms* | 24.086 ms* 24.134 ms* | 8750000 | 6665735 | 6421877 | 50.722 ms |
| protobuf: protobuf 4.35.1-release |
43.796 ms* 99.341 ms* | 55.798 ms* 26.677 ms* | 8750000 | 6665735 | 6421877 | 54.564 ms |
| rkyv 0.8.18 | 140.04 µs | 144.93 µs* 145.02 µs* | 6000008 | 5378500 | 5346872 | 7.3544 ms |
| ron 0.12.2 | 149.87 ms | 474.03 ms | 22192885 | 8970395 | 8137334 | 112.29 ms |
| savefile 0.20.5 | 141.81 µs | 141.59 µs | 6000024 | 5378519 | 5346896 | 7.3250 ms |
| scale: parity-scale-codec 3.7.5 |
4.8933 ms | 3.5113 ms | 6000004 | 5378496 | 5346866 | 7.4004 ms |
| serde-brief 0.2.0 | 12.580 ms | 29.478 ms | 15750015 | 8024540 | 6813667 | 67.673 ms |
| serde-zap 0.1.0 | 413.02 µs | 1.0983 ms | 6000005 | 5378497 | 5346882 | 7.4679 ms |
| serde_bare 0.5.0 | 5.3686 ms | 3.7266 ms | 6000003 | 5378495 | 5346897 | 7.2547 ms |
| speedy 0.8.7 | 141.52 µs | 141.74 µs | 6000004 | 5378496 | 5346866 | 7.3912 ms |
| wincode 0.6.0 | 148.62 µs | 140.71 µs | 6000008 | 5378500 | 5346908 | 7.2479 ms |
| wiring 0.2.4 | 144.64 µs | 274.24 µs | 6000008 | 5378952 | 5346905 | 7.2793 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
91.622 ns* | 11.431 ms* 1.7358 ms* | ‡ |
| columnar 0.13.1 | 7.1938 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.1822 ns* 41.461 ns* | 36.638 µs* 44.461 µs* | ‡ |
| nibblecode 0.1.0 | 1.0909 ns* 1.2282 ns* | 34.098 µs* 34.094 µs* | 150.46 µs* |
| rkyv 0.8.18 | 1.0937 ns* 4.1032 ns* | 34.098 µs* 34.096 µs* | 156.67 µs* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 3.03%* 3.33%* | 2.42% | 56.19% | 75.27% | 77.78% | 2.67% |
| bin-proto 0.12.8 | 2.01% | 1.51% | 80.78% | 90.18% | 90.65% | 18.18% |
| bincode 2.0.1 | 15.60% | 16.37% | 80.78% | 90.18% | 90.65% | 17.99% |
| bincode 1.3.3 | 2.88% | 3.87% | 80.78% | 90.18% | 90.65% | 18.36% |
| bitcode 0.6.9 | 11.48% | 11.18% | 80.78% | 93.59% | 98.48% | 11.89% |
| borsh 1.8.0 | 2.61% | 3.77% | 80.78% | 90.18% | 90.65% | 18.23% |
| capnp: capnp 0.27.0 |
1.93% 0.88%* | † | 34.62% 46.60%* | 68.02% 66.37%* | 80.16% 61.18%* | 2.29% 2.74%* |
| cbor: cbor4ii 1.2.2 |
2.89% | 0.36% | 36.93% | 64.46% | 71.73% | 2.04% |
| cbor: ciborium 0.2.2 |
0.26% | 0.14% | 36.94% | 64.46% | 71.71% | 2.03% |
| cbor: serde_cbor 0.11.2 |
0.48% | 0.49% | 36.94% | 64.46% | 71.71% | 2.03% |
| columnar 0.13.1 | 12.75% | 10.74% 21.80%* | 80.78% | 90.18% | 90.65% | 17.95% |
| compactly 0.1.7 | 0.05% | 0.10% | 100.00% | 100.00% | 100.00% | 100.00% |
| databuf 0.5.0 | 15.64% | 2.89% | 80.78% | 90.18% | 90.65% | 18.04% |
| dlhn 0.1.7 | 2.49% | 2.20% | 80.78% | 90.18% | 90.65% | 17.92% |
| flatbuffers 25.12.19 | 37.86% | † | 80.78% | 90.18% | 90.65% | 18.33% |
| flexbuffers 25.12.19 | 0.17% | 0.19% | 18.21% | 40.75% | 38.82% | 1.22% |
| json: flexon 0.4.8 |
0.23% | 0.33% | 18.50% | 50.70% | 56.46% | 1.12% |
| json: serde_json 1.0.151 |
0.20% | 0.17% | 18.50% | 50.70% | 56.46% | 1.12% |
| json: simd-json 0.17.3 |
0.30% | 0.27% | 18.50% | 50.70% | 56.46% | 1.13% |
| messagepack: msgpacker 0.7.1 |
26.35% | 4.21% | 64.62% | 80.05% | 80.59% | 14.91% |
| messagepack: rmp-serde 1.3.1 |
0.85% | 1.53% | 59.65% | 74.68% | 75.84% | 2.76% |
| messagepack: zerompk 0.7.1 |
21.31% | 11.15% | 59.65% | 74.68% | 75.84% | 2.76% |
| minicbor 2.3.0 | 5.99% | 1.49% | 59.65% | 74.67% | 75.84% | 2.77% |
| nachricht-serde 0.4.0 | 0.14% | 0.71% | 59.65% | 74.69% | 75.89% | 2.71% |
| nanoserde 0.2.1 | 10.33% | 17.02% | 80.78% | 90.18% | 90.65% | 18.36% |
| nibblecode 0.1.0 | 98.89% | † | 80.78% | 90.18% | 90.65% | 18.05% |
| postcard 1.1.3 | 33.90% | 2.69% | 80.78% | 90.18% | 90.65% | 17.84% |
| pot 3.0.1 | 0.42% | 0.30% | 47.88% | 71.17% | 70.73% | 2.30% |
| protobuf: buffa 0.9.1 |
2.76%* 2.01%* | 1.50%* 1.52%* | 55.39% | 72.76% | 75.47% | 2.65% |
| protobuf: prost 0.14.4 |
2.39%* 2.22%* | 1.46%* 1.41%* | 55.39% | 72.76% | 75.47% | 2.62% |
| protobuf: protobuf 3.7.2 |
1.17%* 0.54%* | 0.58%* 0.58%* | 55.39% | 72.76% | 75.47% | 2.62% |
| protobuf: protobuf 4.35.1-release |
0.32%* 0.14%* | 0.25%* 0.53%* | 55.39% | 72.76% | 75.47% | 2.43% |
| rkyv 0.8.18 | 100.00% | 97.09%* 97.03%* | 80.78% | 90.18% | 90.65% | 18.04% |
| ron 0.12.2 | 0.09% | 0.03% | 21.84% | 54.07% | 59.56% | 1.18% |
| savefile 0.20.5 | 98.75% | 99.38% | 80.78% | 90.17% | 90.65% | 18.11% |
| scale: parity-scale-codec 3.7.5 |
2.86% | 4.01% | 80.78% | 90.18% | 90.65% | 17.93% |
| serde-brief 0.2.0 | 1.11% | 0.48% | 30.77% | 60.44% | 71.14% | 1.96% |
| serde-zap 0.1.0 | 33.91% | 12.81% | 80.78% | 90.18% | 90.65% | 17.77% |
| serde_bare 0.5.0 | 2.61% | 3.78% | 80.78% | 90.18% | 90.65% | 18.29% |
| speedy 0.8.7 | 98.95% | 99.27% | 80.78% | 90.18% | 90.65% | 17.95% |
| wincode 0.6.0 | 94.23% | 100.00% | 80.78% | 90.18% | 90.65% | 18.31% |
| wiring 0.2.4 | 96.82% | 51.31% | 80.78% | 90.17% | 90.65% | 18.23% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
1.19%* | 0.30%* 1.96%* | ‡ |
| columnar 0.13.1 | 15.16% | ‡ | ‡ |
| flatbuffers 25.12.19 | 49.99%* 2.63%* | 93.06%* 76.68%* | ‡ |
| nibblecode 0.1.0 | 100.00%* 88.82%* | 99.99%* 100.00%* | 100.00%* |
| rkyv 0.8.18 | 99.74%* 26.59%* | 99.99%* 99.99%* | 96.04%* |
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 | 676.01 µs* 598.28 µs* | 2.3828 ms | 1.2509 ms | 489348 | 281173 | 249360 | 1.8943 ms |
| bin-proto 0.12.8 | 1.4933 ms | 2.3272 ms | † | 566975 | 239350 | 231475 | 1.8283 ms |
| bincode 2.0.1 | 266.10 µs | 1.4951 ms | 632.53 µs | 367413 | 221291 | 206242 | 1.6399 ms |
| bincode 1.3.3 | 518.86 µs | 1.5229 ms | 721.15 µs | 569975 | 240525 | 231884 | 1.8242 ms |
| bitcode 0.6.9 | 81.495 µs | 1.0356 ms | 117.10 µs | 327688 | 200947 | 182040 | 625.33 µs |
| borsh 1.8.0 | 485.09 µs | 1.4610 ms | † | 446595 | 234236 | 209834 | 1.4723 ms |
| capnp: capnp 0.27.0 |
384.84 µs 861.80 µs* | † | † | 803896 489017* | 335606 293127* | 280744 271528* | 2.7347 ms 1.8314 ms* |
| cbor: cbor4ii 1.2.2 |
556.10 µs | 3.6472 ms | 2.6031 ms | 1109831 | 344745 | 274333 | 2.5374 ms |
| cbor: ciborium 0.2.2 |
3.0909 ms | 8.9111 ms | † | 1109821 | 344751 | 274345 | 2.6096 ms |
| cbor: serde_cbor 0.11.2 |
1.5775 ms | 3.5958 ms | 2.5637 ms | 1109821 | 344751 | 274345 | 2.5211 ms |
| columnar 0.13.1 | 163.11 µs | 1.5795 ms 542.15 µs* | † | 563392 | 249619 | 217632 | 1.3196 ms |
| compactly 0.1.7 | 7.5349 ms | 5.5797 ms | † | 148461 | 148599 | 148473 | 72.269 µs |
| databuf 0.5.0 | 193.62 µs | 1.4525 ms | 645.65 µs | 356311 | 213062 | 198403 | 1.3846 ms |
| dlhn 0.1.7 | 594.36 µs | 2.1800 ms | † | 366496 | 220600 | 205586 | 1.4832 ms |
| flatbuffers 25.12.19 | 2.8613 ms | † | † | 849472 | 347816 | 294871 | 2.5624 ms |
| flexbuffers 25.12.19 | 6.3628 ms | 5.9023 ms | 4.9463 ms | 1187688 | 557642 | 553730 | 4.4544 ms |
| json: flexon 0.4.8 |
2.0938 ms | 3.6384 ms | † | 1623191 | 466527 | 359157 | 4.4458 ms |
| json: serde_json 1.0.151 |
3.0078 ms | 5.6338 ms | † | 1623191 | 466527 | 359157 | 4.4137 ms |
| json: simd-json 0.17.3 |
2.2134 ms | 3.7006 ms | † | 1623191 | 466527 | 359157 | 4.3497 ms |
| messagepack: msgpacker 0.7.1 |
201.52 µs | 2.3408 ms | 1.1249 ms | 391251 | 236877 | 220395 | 1.5811 ms |
| messagepack: rmp-serde 1.3.1 |
1.2210 ms | 2.4069 ms | 1.3331 ms | 424533 | 245214 | 226077 | 1.6446 ms |
| messagepack: zerompk 0.7.1 |
205.19 µs | 1.7891 ms | 791.83 µs | 416025 | 243812 | 224965 | 1.6118 ms |
| minicbor 2.3.0 | 481.13 µs | 2.6767 ms | 1.4818 ms | 428773 | 249857 | 228630 | 1.6621 ms |
| nachricht-serde 0.4.0 | 4.0608 ms | 3.1949 ms | 2.2484 ms | 449745 | 252432 | 230965 | 1.7484 ms |
| nanoserde 0.2.1 | 166.62 µs | 1.5524 ms | † | 567975 | 239930 | 231872 | 1.8352 ms |
| nibblecode 0.1.0 | 122.49 µs | † | † | 603928 | 427098 | 405603 | 2.5076 ms |
| postcard 1.1.3 | 370.77 µs | 1.7305 ms | 706.70 µs | 367489 | 221913 | 207244 | 1.4019 ms |
| pot 3.0.1 | 1.7814 ms | 4.7134 ms | 3.8046 ms | 599125 | 299158 | 247675 | 1.9516 ms |
| protobuf: buffa 0.9.1 |
741.11 µs* 2.2597 ms* | 2.7473 ms* 2.9167 ms* | 2.2743 ms | 596811 | 305319 | 268737 | 2.1977 ms |
| protobuf: prost 0.14.4 |
973.95 µs* 2.4103 ms* | 2.8148 ms* 2.8925 ms* | † | 596811 | 305319 | 268737 | 2.2484 ms |
| protobuf: protobuf 3.7.2 |
936.16 µs* 2.5518 ms* | 2.9693 ms* 3.1982 ms* | † | 596811 | 305319 | 268737 | 2.1425 ms |
| protobuf: protobuf 4.35.1-release |
1.4292 ms* 5.6267 ms* | 5.4947 ms* 2.3927 ms* | † | 596811 | 305319 | 268737 | 2.1467 ms |
| rkyv 0.8.18 | 214.92 µs | 1.2562 ms* 1.5649 ms* | † | 603776 | 254776 | 219421 | 1.7003 ms |
| ron 0.12.2 | 6.5077 ms | 22.528 ms | 21.470 ms | 1465223 | 434935 | 342907 | 4.1850 ms |
| savefile 0.20.5 | 142.21 µs | 1.5940 ms | † | 566991 | 239362 | 231478 | 1.7745 ms |
| scale: parity-scale-codec 3.7.5 |
543.02 µs | 1.7211 ms | † | 356311 | 212976 | 198423 | 1.4089 ms |
| serde-brief 0.2.0 | 951.88 µs | 4.3446 ms | 2.9191 ms | 1276014 | 373898 | 293384 | 2.8504 ms |
| serde-zap 0.1.0 | 134.10 µs | 1.6279 ms | 585.06 µs | 367413 | 221291 | 206242 | 1.4348 ms |
| serde_bare 0.5.0 | 630.89 µs | 1.9085 ms | † | 356311 | 213062 | 198403 | 1.4082 ms |
| speedy 0.8.7 | 165.88 µs | 1.3890 ms | 451.93 µs | 449595 | 234970 | 210192 | 1.4785 ms |
| wincode 0.6.0 | 140.23 µs | 1.3652 ms | 456.71 µs | 566975 | 239350 | 231475 | 1.8026 ms |
| wiring 0.2.4 | 126.66 µs | 1.5737 ms | † | 566975 | 247810 | 225086 | 1.8992 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
63.167 ns* | 481.34 µs* 494.25 ns* | ‡ |
| columnar 0.13.1 | 513.39 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.1820 ns* 2.0070 ms* | 1.1987 µs* 1.9612 ms* | ‡ |
| nibblecode 0.1.0 | 1.0912 ns* 95.786 µs* | 136.92 ns* 98.585 µs* | 603.39 ns* |
| rkyv 0.8.18 | 1.0910 ns* 240.01 µs* | 136.92 ns* 237.11 µs* | 603.78 ns* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Borrow | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 12.06%* 13.62%* | 22.75% | 9.36% | 30.34% | 52.85% | 59.54% | 3.82% |
| bin-proto 0.12.8 | 5.46% | 23.30% | † | 26.18% | 62.08% | 64.14% | 3.95% |
| bincode 2.0.1 | 30.63% | 36.26% | 18.51% | 40.41% | 67.15% | 71.99% | 4.41% |
| bincode 1.3.3 | 15.71% | 35.60% | 16.24% | 26.05% | 61.78% | 64.03% | 3.96% |
| bitcode 0.6.9 | 100.00% | 52.35% | 100.00% | 45.31% | 73.95% | 81.56% | 11.56% |
| borsh 1.8.0 | 16.80% | 37.11% | † | 33.24% | 63.44% | 70.76% | 4.91% |
| capnp: capnp 0.27.0 |
21.18% 9.46%* | † | † | 18.47% 30.36%* | 44.28% 50.69%* | 52.89% 54.68%* | 2.64% 3.95%* |
| cbor: cbor4ii 1.2.2 |
14.65% | 14.86% | 4.50% | 13.38% | 43.10% | 54.12% | 2.85% |
| cbor: ciborium 0.2.2 |
2.64% | 6.08% | † | 13.38% | 43.10% | 54.12% | 2.77% |
| cbor: serde_cbor 0.11.2 |
5.17% | 15.08% | 4.57% | 13.38% | 43.10% | 54.12% | 2.87% |
| columnar 0.13.1 | 49.96% | 34.32% 100.00%* | † | 26.35% | 59.53% | 68.22% | 5.48% |
| compactly 0.1.7 | 1.08% | 9.72% | † | 100.00% | 100.00% | 100.00% | 100.00% |
| databuf 0.5.0 | 42.09% | 37.33% | 18.14% | 41.67% | 69.74% | 74.83% | 5.22% |
| dlhn 0.1.7 | 13.71% | 24.87% | † | 40.51% | 67.36% | 72.22% | 4.87% |
| flatbuffers 25.12.19 | 2.85% | † | † | 17.48% | 42.72% | 50.35% | 2.82% |
| flexbuffers 25.12.19 | 1.28% | 9.19% | 2.37% | 12.50% | 26.65% | 26.81% | 1.62% |
| json: flexon 0.4.8 |
3.89% | 14.90% | † | 9.15% | 31.85% | 41.34% | 1.63% |
| json: serde_json 1.0.151 |
2.71% | 9.62% | † | 9.15% | 31.85% | 41.34% | 1.64% |
| json: simd-json 0.17.3 |
3.68% | 14.65% | † | 9.15% | 31.85% | 41.34% | 1.66% |
| messagepack: msgpacker 0.7.1 |
40.44% | 23.16% | 10.41% | 37.95% | 62.73% | 67.37% | 4.57% |
| messagepack: rmp-serde 1.3.1 |
6.67% | 22.52% | 8.78% | 34.97% | 60.60% | 65.67% | 4.39% |
| messagepack: zerompk 0.7.1 |
39.72% | 30.30% | 14.79% | 35.69% | 60.95% | 66.00% | 4.48% |
| minicbor 2.3.0 | 16.94% | 20.25% | 7.90% | 34.62% | 59.47% | 64.94% | 4.35% |
| nachricht-serde 0.4.0 | 2.01% | 16.97% | 5.21% | 33.01% | 58.87% | 64.28% | 4.13% |
| nanoserde 0.2.1 | 48.91% | 34.92% | † | 26.14% | 61.93% | 64.03% | 3.94% |
| nibblecode 0.1.0 | 66.53% | † | † | 24.58% | 34.79% | 36.61% | 2.88% |
| postcard 1.1.3 | 21.98% | 31.33% | 16.57% | 40.40% | 66.96% | 71.64% | 5.16% |
| pot 3.0.1 | 4.57% | 11.50% | 3.08% | 24.78% | 49.67% | 59.95% | 3.70% |
| protobuf: buffa 0.9.1 |
11.00%* 3.61%* | 19.73%* 18.59%* | 5.15% | 24.88% | 48.67% | 55.25% | 3.29% |
| protobuf: prost 0.14.4 |
8.37%* 3.38%* | 19.26%* 18.74%* | † | 24.88% | 48.67% | 55.25% | 3.21% |
| protobuf: protobuf 3.7.2 |
8.71%* 3.19%* | 18.26%* 16.95%* | † | 24.88% | 48.67% | 55.25% | 3.37% |
| protobuf: protobuf 4.35.1-release |
5.70%* 1.45%* | 9.87%* 22.66%* | † | 24.88% | 48.67% | 55.25% | 3.37% |
| rkyv 0.8.18 | 37.92% | 43.16%* 34.64%* | † | 24.59% | 58.33% | 67.67% | 4.25% |
| ron 0.12.2 | 1.25% | 2.41% | 0.55% | 10.13% | 34.17% | 43.30% | 1.73% |
| savefile 0.20.5 | 57.31% | 34.01% | † | 26.18% | 62.08% | 64.14% | 4.07% |
| scale: parity-scale-codec 3.7.5 |
15.01% | 31.50% | † | 41.67% | 69.77% | 74.83% | 5.13% |
| serde-brief 0.2.0 | 8.56% | 12.48% | 4.01% | 11.63% | 39.74% | 50.61% | 2.54% |
| serde-zap 0.1.0 | 60.77% | 33.30% | 20.02% | 40.41% | 67.15% | 71.99% | 5.04% |
| serde_bare 0.5.0 | 12.92% | 28.41% | † | 41.67% | 69.74% | 74.83% | 5.13% |
| speedy 0.8.7 | 49.13% | 39.03% | 25.91% | 33.02% | 63.24% | 70.64% | 4.89% |
| wincode 0.6.0 | 58.12% | 39.71% | 25.64% | 26.18% | 62.08% | 64.14% | 4.01% |
| wiring 0.2.4 | 64.34% | 34.45% | † | 26.18% | 59.96% | 65.96% | 3.81% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
1.73%* | 0.03%* 27.70%* | ‡ |
| columnar 0.13.1 | 0.21% | ‡ | ‡ |
| flatbuffers 25.12.19 | 50.00%* 0.00%* | 11.42%* 0.01%* | ‡ |
| nibblecode 0.1.0 | 99.98%* 0.00%* | 100.00%* 0.14%* | 100.00%* |
| rkyv 0.8.18 | 100.00%* 0.00%* | 100.00%* 0.06%* | 99.94%* |
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 | 3.7217 ms* 1.9583 ms* | 6.6405 ms | 1704643 | 1294259 | 1245668 | 8.1568 ms |
| bin-proto 0.12.8 | 4.4057 ms | 5.4446 ms | 1791489 | 1127998 | 1051146 | 7.3094 ms |
| bincode 2.0.1 | 909.53 µs | 3.3589 ms | 1406257 | 1117802 | 1062438 | 6.4638 ms |
| bincode 1.3.3 | 3.0615 ms | 3.5351 ms | 1854234 | 1141994 | 1048745 | 7.3027 ms |
| bitcode 0.6.9 | 550.45 µs | 1.9644 ms | 971318 | 878034 | 850340 | 2.1479 ms |
| borsh 1.8.0 | 2.6166 ms | 2.2795 ms | 1521989 | 1108471 | 1038528 | 6.9390 ms |
| capnp: capnp 0.27.0 |
2.1510 ms 3.7320 ms* | † | 2724288 1616255* | 1546992 1278764* | 1239111 1125654* | 10.659 ms 6.0023 ms* |
| cbor: cbor4ii 1.2.2 |
1.9719 ms | 14.444 ms | 6012539 | 1695215 | 1464951 | 16.456 ms |
| cbor: ciborium 0.2.2 |
20.054 ms | 47.278 ms | 6012373 | 1695146 | 1465025 | 16.361 ms |
| cbor: serde_cbor 0.11.2 |
8.5231 ms | 15.374 ms | 6012373 | 1695146 | 1465025 | 16.581 ms |
| columnar 0.13.1 | 688.72 µs | 3.0476 ms 1.0212 ms* | 1544720 | 996718 | 896213 | 3.5401 ms |
| compactly 0.1.7 | 44.575 ms | 28.136 ms | 800772 | 801349 | 800799 | 271.95 µs |
| databuf 0.5.0 | 805.64 µs | 3.0341 ms | 1319999 | 1062631 | 1008334 | 6.1973 ms |
| dlhn 0.1.7 | 3.7458 ms | 6.0108 ms | 1311281 | 1077520 | 1046095 | 5.9263 ms |
| flatbuffers 25.12.19 | 3.9637 ms | † | 2325620 | 1439185 | 1268060 | 9.7087 ms |
| flexbuffers 25.12.19 | 31.759 ms | 29.658 ms | 5352680 | 2658295 | 2777967 | 24.766 ms |
| json: flexon 0.4.8 |
11.552 ms | 18.556 ms | 9390461 | 2391679 | 1842767 | 27.493 ms |
| json: serde_json 1.0.151 |
16.353 ms | 25.540 ms | 9390461 | 2391679 | 1842767 | 27.394 ms |
| json: simd-json 0.17.3 |
10.229 ms | 20.774 ms | 9390461 | 2391679 | 1842767 | 27.510 ms |
| messagepack: msgpacker 0.7.1 |
811.57 µs | 4.6981 ms | 1458773 | 1156055 | 1137788 | 6.6282 ms |
| messagepack: rmp-serde 1.3.1 |
8.3590 ms | 8.7441 ms | 1745322 | 1261627 | 1228923 | 7.9754 ms |
| messagepack: zerompk 0.7.1 |
869.49 µs | 3.7850 ms | 1675866 | 1230968 | 1195006 | 7.6057 ms |
| minicbor 2.3.0 | 1.9499 ms | 8.8570 ms | 1777386 | 1276218 | 1252558 | 8.5622 ms |
| nachricht-serde 0.4.0 | 23.843 ms | 13.590 ms | 1770060 | 1277755 | 1263362 | 8.6609 ms |
| nanoserde 0.2.1 | 712.14 µs | 2.2363 ms | 1812404 | 1134820 | 1053109 | 7.4424 ms |
| nibblecode 0.1.0 | 425.93 µs | † | 2075936 | 1516641 | 1403868 | 9.7648 ms |
| postcard 1.1.3 | 1.5811 ms | 3.7908 ms | 1311281 | 1083900 | 1041434 | 5.9545 ms |
| pot 3.0.1 | 10.959 ms | 22.545 ms | 2604812 | 1482233 | 1298928 | 11.560 ms |
| protobuf: buffa 0.9.1 |
2.8016 ms* 6.5949 ms* | 8.5627 ms* 9.5716 ms* | 1859886 | 1338076 | 1295351 | 8.7064 ms |
| protobuf: prost 0.14.4 |
4.5636 ms* 7.6909 ms* | 6.9017 ms* 7.5766 ms* | 1859886 | 1338076 | 1295351 | 8.7257 ms |
| protobuf: protobuf 3.7.2 |
4.0959 ms* 9.9397 ms* | 9.8542 ms* 10.655 ms* | 1859886 | 1338076 | 1295351 | 8.7516 ms |
| protobuf: protobuf 4.35.1-release |
6.9465 ms* 25.875 ms* | 20.234 ms* 8.9905 ms* | 1859886 | 1338076 | 1295351 | 8.7220 ms |
| rkyv 0.8.18 | 831.53 µs | 1.8255 ms* 2.2285 ms* | 2075936 | 1383779 | 1210377 | 9.4855 ms |
| ron 0.12.2 | 34.905 ms | 145.40 ms | 8677703 | 2233642 | 1826180 | 27.413 ms |
| savefile 0.20.5 | 571.17 µs | 2.3749 ms | 1791505 | 1128012 | 1051153 | 7.3004 ms |
| scale: parity-scale-codec 3.7.5 |
2.7084 ms | 2.8923 ms | 1319999 | 1064380 | 1010708 | 6.1302 ms |
| serde-brief 0.2.0 | 3.4353 ms | 19.943 ms | 6951772 | 1796265 | 1567819 | 18.520 ms |
| serde-zap 0.1.0 | 596.91 µs | 3.5948 ms | 1406257 | 1117802 | 1062438 | 6.4944 ms |
| serde_bare 0.5.0 | 3.4053 ms | 4.0783 ms | 1319999 | 1062645 | 1008349 | 6.2337 ms |
| speedy 0.8.7 | 593.80 µs | 2.0810 ms | 1584734 | 1119837 | 1037992 | 7.1525 ms |
| wincode 0.6.0 | 524.12 µs | 1.9175 ms | 1791489 | 1127998 | 1051146 | 7.3631 ms |
| wiring 0.2.4 | 478.17 µs | 2.3178 ms | 1791489 | 1156963 | 1082815 | 7.5787 ms |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
66.592 ns* | 1.6845 ms* 390.06 ns* | ‡ |
| columnar 0.13.1 | 26.497 ns | ‡ | ‡ |
| flatbuffers 25.12.19 | 2.1816 ns* 5.1995 ms* | 2.3356 µs* 5.3594 ms* | ‡ |
| nibblecode 0.1.0 | 1.0910 ns* 312.02 µs* | 295.15 ns* 309.00 µs* | 481.03 ns* |
| rkyv 0.8.18 | 1.0910 ns* 374.47 µs* | 295.35 ns* 374.68 µs* | 552.39 ns* |
Relative to best. Higher is better.
| Crate | Serialize | Deserialize | Size | Zlib | Zstd | Zstd Time |
|---|---|---|---|---|---|---|
| bilrost 0.1015.0 | 11.44%* 21.75%* | 15.38% | 46.98% | 61.92% | 64.29% | 3.33% |
| bin-proto 0.12.8 | 9.67% | 18.76% | 44.70% | 71.04% | 76.18% | 3.72% |
| bincode 2.0.1 | 46.83% | 30.40% | 56.94% | 71.69% | 75.37% | 4.21% |
| bincode 1.3.3 | 13.91% | 28.89% | 43.19% | 70.17% | 76.36% | 3.72% |
| bitcode 0.6.9 | 77.38% | 51.99% | 82.44% | 91.27% | 94.17% | 12.66% |
| borsh 1.8.0 | 16.28% | 44.80% | 52.61% | 72.29% | 77.11% | 3.92% |
| capnp: capnp 0.27.0 |
19.80% 11.41%* | † | 29.39% 49.54%* | 51.80% 62.67%* | 64.63% 71.14%* | 2.55% 4.53%* |
| cbor: cbor4ii 1.2.2 |
21.60% | 7.07% | 13.32% | 47.27% | 54.66% | 1.65% |
| cbor: ciborium 0.2.2 |
2.12% | 2.16% | 13.32% | 47.27% | 54.66% | 1.66% |
| cbor: serde_cbor 0.11.2 |
5.00% | 6.64% | 13.32% | 47.27% | 54.66% | 1.64% |
| columnar 0.13.1 | 61.84% | 33.51% 100.00%* | 51.84% | 80.40% | 89.35% | 7.68% |
| compactly 0.1.7 | 0.96% | 3.63% | 100.00% | 100.00% | 100.00% | 100.00% |
| databuf 0.5.0 | 52.87% | 33.66% | 60.66% | 75.41% | 79.42% | 4.39% |
| dlhn 0.1.7 | 11.37% | 16.99% | 61.07% | 74.37% | 76.55% | 4.59% |
| flatbuffers 25.12.19 | 10.75% | † | 34.43% | 55.68% | 63.15% | 2.80% |
| flexbuffers 25.12.19 | 1.34% | 3.44% | 14.96% | 30.15% | 28.83% | 1.10% |
| json: flexon 0.4.8 |
3.69% | 5.50% | 8.53% | 33.51% | 43.46% | 0.99% |
| json: serde_json 1.0.151 |
2.60% | 4.00% | 8.53% | 33.51% | 43.46% | 0.99% |
| json: simd-json 0.17.3 |
4.16% | 4.92% | 8.53% | 33.51% | 43.46% | 0.99% |
| messagepack: msgpacker 0.7.1 |
52.48% | 21.74% | 54.89% | 69.32% | 70.38% | 4.10% |
| messagepack: rmp-serde 1.3.1 |
5.10% | 11.68% | 45.88% | 63.52% | 65.16% | 3.41% |
| messagepack: zerompk 0.7.1 |
48.99% | 26.98% | 47.78% | 65.10% | 67.01% | 3.58% |
| minicbor 2.3.0 | 21.84% | 11.53% | 45.05% | 62.79% | 63.93% | 3.18% |
| nachricht-serde 0.4.0 | 1.79% | 7.51% | 45.24% | 62.72% | 63.39% | 3.14% |
| nanoserde 0.2.1 | 59.81% | 45.66% | 44.18% | 70.61% | 76.04% | 3.65% |
| nibblecode 0.1.0 | 100.00% | † | 38.57% | 52.84% | 57.04% | 2.78% |
| postcard 1.1.3 | 26.94% | 26.94% | 61.07% | 73.93% | 76.89% | 4.57% |
| pot 3.0.1 | 3.89% | 4.53% | 30.74% | 54.06% | 61.65% | 2.35% |
| protobuf: buffa 0.9.1 |
15.20%* 6.46%* | 11.93%* 10.67%* | 43.05% | 59.89% | 61.82% | 3.12% |
| protobuf: prost 0.14.4 |
9.33%* 5.54%* | 14.80%* 13.48%* | 43.05% | 59.89% | 61.82% | 3.12% |
| protobuf: protobuf 3.7.2 |
10.40%* 4.29%* | 10.36%* 9.58%* | 43.05% | 59.89% | 61.82% | 3.11% |
| protobuf: protobuf 4.35.1-release |
6.13%* 1.65%* | 5.05%* 11.36%* | 43.05% | 59.89% | 61.82% | 3.12% |
| rkyv 0.8.18 | 51.22% | 55.94%* 45.82%* | 38.57% | 57.91% | 66.16% | 2.87% |
| ron 0.12.2 | 1.22% | 0.70% | 9.23% | 35.88% | 43.85% | 0.99% |
| savefile 0.20.5 | 74.57% | 43.00% | 44.70% | 71.04% | 76.18% | 3.73% |
| scale: parity-scale-codec 3.7.5 |
15.73% | 35.31% | 60.66% | 75.29% | 79.23% | 4.44% |
| serde-brief 0.2.0 | 12.40% | 5.12% | 11.52% | 44.61% | 51.08% | 1.47% |
| serde-zap 0.1.0 | 71.36% | 28.41% | 56.94% | 71.69% | 75.37% | 4.19% |
| serde_bare 0.5.0 | 12.51% | 25.04% | 60.66% | 75.41% | 79.42% | 4.36% |
| speedy 0.8.7 | 71.73% | 49.07% | 50.53% | 71.56% | 77.15% | 3.80% |
| wincode 0.6.0 | 81.27% | 53.26% | 44.70% | 71.04% | 76.18% | 3.69% |
| wiring 0.2.4 | 89.08% | 44.06% | 44.70% | 69.26% | 73.96% | 3.59% |
| Crate | Access | Read | Update |
|---|---|---|---|
| capnp: capnp 0.27.0 |
1.64%* | 0.02%* 75.67%* | ‡ |
| columnar 0.13.1 | 4.12% | ‡ | ‡ |
| flatbuffers 25.12.19 | 50.01%* 0.00%* | 12.64%* 0.01%* | ‡ |
| nibblecode 0.1.0 | 100.00%* 0.00%* | 100.00%* 0.10%* | 100.00%* |
| rkyv 0.8.18 | 100.00%* 0.00%* | 99.93%* 0.08%* | 87.08%* |
* mouse over for situational details
† this deserialization capability is not supported
‡ buffer mutation is not supported (capnp and flatbuffers may but not for rust)