Zerocopy is a Rust library designed to make zero-cost memory manipulation both safe and effortless. It allows developers to reinterpret or convert raw byte sequences into structured types—and vice versa—without writing unsafe code directly. The crate provides safe abstractions for transmuting data while preserving Rust’s strict safety guarantees, removing the need for manual memory manipulation. Zerocopy introduces a suite of conversion traits such as TryFromBytes, FromBytes, IntoBytes, and FromZeros for defining how types can be safely constructed from or written to byte sequences. It also includes marker traits like KnownLayout, Immutable, and Unaligned to define type characteristics used in conversions. Complementing these traits are conversion macros that perform compile-time checks to ensure size and alignment safety, providing zero runtime overhead for unconditional casts.
Features
- Four key conversion traits (TryFromBytes, FromBytes, IntoBytes, FromZeros)
- Marker traits (KnownLayout, Immutable, Unaligned) to define memory guarantees
- Compile-time checked macros for safe transmutation between types
- Byte-order aware integer types for network and systems programming
- no_std compatible, with optional alloc and std feature support
- SIMD and floating-point support via optional Cargo features