Module bytes

Source
Expand description

Wrapper types to enable optimized handling of &[u8] and Vec<u8>.

Without specialization, Rust forces us to treat &[u8] just like any other slice and Vec<u8> just like any other vector. In reality this particular slice and vector can often be serialized and deserialized in a more efficient, compact representation in many formats.

When working with such a format, you can opt into specialized handling of &[u8] by wrapping it in bytes::Bytes and Vec<u8> by wrapping it in bytes::ByteBuf.

Rust support for specialization is being tracked in rust-lang/rust#31844. Once it lands in the stable compiler we will be deprecating these wrapper types in favor of optimizing &[u8] and Vec<u8> out of the box.

Structsยง

ByteBuf
Wraps a Vec<u8> in order to serialize and deserialize in an efficient way.
ByteBufVisitor
This type implements the serde::de::Visitor trait for a ByteBuf.
Bytes
Wraps a &[u8] in order to serialize in an efficient way. Does not support deserialization.