djkoloski / rust_serialization_benchmark

Benchmarks for rust serialization frameworks
527 stars 48 forks source link

Add validated/unvalidated benchmarks #13

Closed djkoloski closed 3 years ago

djkoloski commented 3 years ago

This is where we start to get into somewhat murky waters. FlatBuffers supports buffer validation, but the dependency needs to get upgraded to 0.8. Cap'n Proto supports validation, but it's lazy so we would need some way of distinguishing that. Maybe splitting the access/read benchmarks into validated/unvalidated for FlatBuffers and rkyv and leaving the Cap'n Proto results as validated.

djkoloski commented 3 years ago

FlatBuffers updated and rkyv implemented in 6b2f8c3be3da776a69b3fc9d1938e7d51d064c6c. It looks like we'd have to manually write validation code for FlatBuffers, so either we do that or omit those benches until they write validation code for the compiler.

syrusakbary commented 3 years ago

Is it possible to add the validation benchmark numbers as well to the readme? I'd love to see how different approaches compare to each other!

Edit: I just realized there are two numbers for rkyv in the Readme in the same row. Is the first non-validated times and the second validated?

djkoloski commented 3 years ago

Yes, both of the numbers are there. You can hover over anything with an asterisk to get additional context on the specific case.

Only rkyv has validated and unvalidated benchmarks right now. FlatBuffers and Abomonation are unvalidated, and capnp is progressively validated (validated on demand).