3 releases
| 0.1.0-alpha.3 | Jul 7, 2019 |
|---|---|
| 0.1.0-alpha.2 | Jul 4, 2019 |
| 0.1.0-alpha.1 | May 29, 2019 |
#1438 in Encoding
657 downloads per month
38KB
988 lines
store
store is a dead simple binary (de)serializer utilizing the
Serialize and Deserialize traits
provided by serde.
It is fully compatible with std, no_std, and no_std + alloc.
Installation
To use store, add this to your Cargo.toml:
[dependencies]
store = "0.1.0-alpha.3"
Dumping types
store can dump types that implement Serialize into
mutable byte buffers.
use serde_derive::Serialize;
use store::Dump;
#[derive(Serialize)]
struct Foo(u32);
fn main() -> store::Result<()> {
let mut buf = [0; 4];
let foo = Foo(42);
foo.dump_into_bytes(&mut buf[..])?;
Ok(())
}
Loading types
store will also decode structures that implement
Deserialize from byte buffers.
use serde_derive::Deserialize;
use store::Load;
#[derive(Deserialize)]
struct Bar(u32);
fn main() -> store::Result<()> {
let buf = [0; 4];
let bar = Bar::load_from_bytes(&buf[..])?;
Ok(())
}
License
This project is dual-licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contributing
If you would like to contribute to store, experience any issues, or even have
features you would like to see implemented, new issues and pull
requests are welcomed.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in store by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
Dependencies
~220–530KB
~11K SLoC