2 unstable releases
Uses old Rust 2015
0.2.0 | Dec 19, 2017 |
---|---|
0.1.0 | Sep 1, 2017 |
#9 in #multiformats
10KB
102 lines
rust_multicodec
Rust implementation of the multicodec specification.
Install
First add this to your Cargo.toml
[dependencies]
rust_multicodec = "0.2.0"
Then run cargo build
.
Usage
Encode / Decode
extern crate rust_multicodec;
#[macro_use]
extern crate serde_derive;
#[derive(Serialize)]
#[derive(Debug)]
struct Person {
name: String
}
fn main(){
let to_be_encoded=Person{name:String::from("sanyi")};
let encoded=rust_multicodec::encode(rust_multicodec::codec::CodecType::JSON, &to_be_encoded).unwrap();
println!("{:?}",encoded);
// it will print: Ok([129, 30, 123, 34, 110, 97, 109, 101, 34, 58, 34, 115, 97, 110, 121, 105, 34, 125])
let decoded:Person=rust_multicodec::decode(encoded.as_ref()).unwrap().data;
println!("{:?}",decoded);
// it will print: Person { name: "sanyi" }
}
Contribute
Contributions are welcome :)
More reading
- Multicodec: https://github.com/multiformats/multicodec
- VarInt: https://developers.google.com/protocol-buffers/docs/encoding
- Multiformats VarInt: https://github.com/multiformats/unsigned-varint
License
Licensed under the Apache License, Version 2.0
Dependencies
~0.7–1.6MB
~36K SLoC