#serialization #serde

serde_multi

Standardized trait API for serde-based crates and dynamic serialization/deserialization

1 unstable release

0.1.1 May 2, 2021
0.1.0 May 2, 2021

#169 in #serialization

BSL-1.0 license

40KB
852 lines

Serde Multi

Crate API

This library exposes a standardized API across a number of file formats, as well as providing traits to make it possible to dynamically choose file serialization/deserialization format at runtime or based on generics.

Each file format is toggled via feature, all of which are disabled by default.

Currently the only supported file formats are:

If you would like to add more file formats, feel free to make a pull request.

Example Usage

use serde_multi::{SerdeText, Error};
use serde_multi::formats::json::Json;
use std::collections::HashMap;

let mut value: HashMap<String, i32> = HashMap::new();
value.insert("foo".to_owned(), -193);
value.insert("bar".to_owned(), 3058);

// `Json` can be swapped out for any value that implements `SerdeText` here.
let s = Json.to_string(&value).expect("failed to serialize");
println!("serialized: {}", s);

Dependencies

~150–670KB
~14K SLoC