Andre Bogus
Aug 28, 2020 ⋅ 10 min read

Rust serialization: What’s ready for production today?

Andre Bogus Andre "llogiq" Bogus is a Rust contributor and Clippy maintainer. A musician-turned-programmer, he has worked in many fields, from voice acting and teaching, to programming and managing software projects. He enjoys learning new things and telling others about them.

Recent posts:

Using Rust And Axum To Build A Jwt Authentication Api

Using Rust and Axum to build a JWT authentication API

Learn to build a basic JWT authentication system with Rust and Axum, including setting up the routes, handlers, and the middleware system.

Eze Sunday
May 29, 2024 ⋅ 9 min read
Building A Customizable Dashboard With Dashy

Building a customizable dashboard with Dashy

Dashy helps us create beautiful, customizable, modern dashboard pages with web service links and widgets.

Shalitha Suranga
May 29, 2024 ⋅ 10 min read
Winterjs Vs Bun: Comparing Javascript Runtimes

WinterJS vs. Bun: Comparing JavaScript runtimes

WinterJS is theoretically the fastest WinterCG JavaScript runtime. Let’s compare WinterJS to Bun, another runtime known for its speed.

Emmanuel Odioko
May 28, 2024 ⋅ 6 min read
Understanding Cross Platform Graphics In Rust With Wgpu

Leverage Rust and wgpu for effective cross-platform graphics

Use Rust with wgpu to work directly with the new WebGPU standard for better control, cross-platform performance, and bug handling.

Mario Zupan
May 28, 2024 ⋅ 36 min read
View all posts

4 Replies to "Rust serialization: What’s ready for production today?"

  1. Hi Ander,

    Thanks for the interesting article.
    I try to understand the background of the serialization/deserialization methods on the Serde. For example, how the BinCode serialization method encodes data and which metadata store after encoding.


  2. This is great. I really appreciate this concise overview which is exactly what I needed to start shopping. One thing though that would help immensely is if, at least in the comparison table, the units were all standard or if there was an option to make them standard or to sort them. For today, I will calculate them in a spreadsheet (happy to share, obviously) but I’m sure the next person who wants to use this the same way will appreciate the lack of an extra step.

    Thanks for all the great work!

    1. Thanks for the nice words. The units *are* all standard SI units. But I think you may actually mean they should be the same unit (e.g. nanoseconds). The downside is that this would yield some pretty big numbers which aren’t that easy to parse either. I’ll try and see if a nanosecond-based comparison is any easier to read.

  3. MessagePack is a self describing protocol and therefore has to encode the field names (‘variant’,’opt_bool’,’vec_strs’,’range’). I really can’t see how this would fit into 24 bytes total, only the field names would take 28 bytes (so without any protocol overhead and values) if I’m counting correctly…

Leave a Reply