Serde-free deterministic binary serialization.
bincake serializes and deserializes Rust types to and from compact little-endian binary,
with no dependency on serde.
- Deterministic output — identical data always produces identical bytes
- Derive macros for automatic implementation on custom types
- Controlled by
derivefeature flag
- Controlled by
- Built on
tapedfor zero-allocation byte reading - Numeric types, strings, vecs, and tuples supported out of the box
Originally developed as the bytecode serialization format for rvm,
extracted as a standalone library after proving stable under real usage.
use bincake::*;
#[derive(Serialize)]
struct Instruction {
opcode: u8,
operand: u32,
}
// Serialize
let instr = Instruction { opcode: 0x01, operand: 42 };
let mut dest = vec![];
dest.write(instr);
// Deserialize
let mut src = bytes.to_tape();
let instr = src.read::<Instruction>();- Serializing bytecode, binary protocols, or other compact binary formats
- Anywhere deterministic output is required (content hashing, signing)
- Projects where
serdecompile times are a concern no_stdenvironments