Ben Chuanlong Du's Blog

It is never too late to learn.

Serialization and Deserialization in Rust

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

msgpacker

msgpack-rust

serde Based Serialization and Deserialization

serde

serde is a generic serialization/deserialization framework .

serde_with

serde_with provides custom de/serialization helpers to use in combination with serde's with-annotation and with the improved serde_as-annotation.

serde_yaml

serde_yaml is a YAML data format for Serde .

serde-big-array

serde-big-array Big array helper for serde. The purpose of this crate is to make (de-)serializing arrays of sizes > 32 easy. This solution is needed until serde adopts const generics support.

serde_stacker

serde_stacker is a serde adapter that avoids stack overflow by dynamically growing the stack .

basic-toml

basic-toml is a library for parsing and producing data in TOML format using Serde.

ciborium

Ciborium contains CBOR serialization and deserialization implementations for serde.

minicbor

minicbor is a small CBOR codec suitable for no_std environments.

bincode

bincode is a compact encoder / decoder pair that uses a binary zero-fluff encoding scheme. The size of the encoded object will be the same or smaller than the size that the object takes up in memory in a running Rust program.

serde-repr

nanoserde

goblin

speedy

borsh-rs

rust-ini

xml-rs

Other Crates

Strictly speaking, the following crates are not serialization/deserialization crates. There are more like binary encoding/decoding crates. However, they can be very useful when you work with primitive types in Rust.

parquet

parquet is an Apache Parquet implementation in Rust.

atoi-rs

atoi-rs parses integers directly from [u8] slices in safe code .

References

Comments