Skip to content
forked from anza-xyz/wincode

Fast, bincode‑compatible serializer/deserializer focused on in‑place initialization and direct memory writes.

License

Notifications You must be signed in to change notification settings

publicqi/wincode

 
 

Repository files navigation

wincode

Fast, bincode‑compatible serializer/deserializer focused on in‑place initialization and direct memory writes.

Crates.io version docs.rs docs

Quickstart

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.

Benchmarks

Run benchmarks comparing wincode against bincode:

cargo bench --features derive

Security

Release v0.1.2 is currently undergoing 3 independent security reviews with the following firms:

Reports will be added to the repo once completed.

Fuzzing

This crate has been fuzzed using the harness in the fuzz folder for roundtrip correctness against bincode.

About

Fast, bincode‑compatible serializer/deserializer focused on in‑place initialization and direct memory writes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%