serde_columnar
serde_columnar is an ergonomic columnar storage encoding crate that offers forward and backward compatibility.
It allows the contents that need to be serialized and deserialized to be encoded into binary using columnar storage, all by just employing simple macro annotations.
For more detailed introduction, please refer to this Notion link: Serde-Columnar.
Features 🚀
serde_columnar comes with several remarkable features:
- 🗜️ Utilizes columnar storage in conjunction with various compression strategies to significantly reduce the volume of the encoded content.
- 🔄 Built-in forward and backward compatibility solutions, eliminating the need for maintaining additional version codes.
- 🌳 Supports nested columnar storage.
- 🗃️ Offers additional compression for each column.
- 📦 Supports list and map containers
How to use
Install
cargo add serde_columnar
Or edit your Cargo.toml and add serde_columnar as dependency:
[]
= "0.3.0"
Examples
use ;
// this struct can be a row of vec-like container
// derive `Serialize` and `Deserialize`
let store = new;
let bytes = to_vec.unwrap;
let store_from_bytes = .unwrap;
You can find more examples of serde_columnar in examples and tests.