Fast, bincode‑compatible serializer/deserializer focused on in‑place initialization and direct memory writes.
wincode traits are implemented for many built-in types (like Vec, integers, etc.).
You'll most likely want to start by using wincode on your own struct types, which can be done with the derive macros.
#[derive(SchemaWrite, SchemaRead)]
struct MyStruct {
data: Vec<u64>,
win: bool,
}
let val = MyStruct { data: vec![1,2,3], win: true };
assert_eq!(wincode::serialize(&val).unwrap(), bincode::serialize(&val).unwrap());See the docs for more details.
Run benchmarks comparing wincode against bincode:
cargo bench --features deriveRelease v0.1.2 is currently undergoing 3 independent security reviews with the following firms:
- Neodyme
- OtterSec
- Asymmetric Research
Reports will be added to the repo once completed.
This crate has been fuzzed using the harness in the fuzz folder for roundtrip correctness against bincode.