rkyv is faster than {bincode, capnp, cbor, flatbuffers, postcard, prost, serde_json}

This page summarizes the projects mentioned and recommended in the original post on /r/rust

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • rust_serialization_benchmark

    Benchmarks for rust serialization frameworks

  • The prost serialize benchmarks are calling serialize\_pb() in the inner loop. That is creating a brand new instance of the message type. I see something similar in the capnp version here, but not for rkyv. I haven't used the rkyv API before so I may be misunderstanding, and they are all doing creation + encoding in the serialization inner loop?

  • bytecheck

    Memory validation framework for Rust

  • I will also plug bytecheck, which I wrote specifically to address the security problems with rkyv. It allows you to thoroughly verify data integrity and I always recommend that people use it when dealing with data they cannot trust. For trusted data there's no issue, and there are other alternatives that are more performant for untrusted data as well.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • nachricht

    A self-describing data interchange format

  • Right, great question. I referenced one benchmark in the post that separated the populate and serialize steps. This is a bit of a fuzzy patch for the methodology: what should count as serialization? I think there could be arguments either way:

  • tree-buf

    An experimental serialization system written in Rust

  • I think this is great. Could you add tree-buf as well to your benchmarks?

  • rkyv

    Zero-copy deserialization framework for Rust

  • I encourage you to definitely try it out for your use case and see what works and what doesn't. If you do run into any sharp edges, add your experience to the feedback thread!

  • unsafe-code-guidelines

    Forum for discussion about what unsafe code can and can't do

  • I don't think that rkyv will be able to guarantee set these bytes to zero (or any other value) after reading some internals discussions. You may be able to use the regular hash of your data to do something similar:

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • A new major version of jql has been released

    4 projects | /r/rust | 23 Apr 2023
  • Pijul 1.0 Beta

    5 projects | news.ycombinator.com | 19 Jan 2022
  • Is there a library like Serde but which makes it easy to mutate serialized data stored in a [u8] or Vec<u8>?

    2 projects | /r/rust | 6 Dec 2021
  • rkyv 0.7: Endian-agnostic types, `no_std` validation, performance improvements, github sponsors and more!

    4 projects | /r/rust | 7 Jul 2021
  • rkyv 0.5: Comparison derives, serialize bounds, and the future

    2 projects | /r/rust | 5 Apr 2021