S

ssmarshal

Stupid simple value-only marshaling using serde

Name Last Update
src Loading commit data...
ssmarshal_fuzz Loading commit data...
tests Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
Cargo.toml Loading commit data...
LICENSE-APACHE Loading commit data...
LICENSE-MIT Loading commit data...
README.md Loading commit data...

ssmarshal

Crates.io

Documentation

ssmarshal ("stupid simple marshaling") is a serde-based de/serialization library. It is somewhat like bincode, but doesn't support String/Vec - this library is entirely zero-allocation, for use in limited no_std contexts. The format is not incredibly compact, but doesn't add extra fluff, and is quick to en/decode. The size of encoded values will generally be the same as the in-memory representation, minus any padding. For de/serializing a single value, a buffer of size_of::<T>() is always enough.

All numbers are encoded as little-endian.

This format is not self-describing. To successfully deserialize a value, the exact layout must be known ahead-of-time.

This is designed for doing IPC, not saving to disk or transferring over the network. It may be useful for those cases, though.

This library is regularly fuzz tested with AFL for correct handling of arbitrary input.