Dev.to
7/22/2026

The original title is "Rust Strings Demystified: Literals, Slices, and Fat Pointers Under the Hood"
Original: Rust Strings Demystified: Literals, Slices, and Fat Pointers Under the Hood
Short summary
A detailed explanation of Rust's string system covering String vs &str, string literals, slices, and fat pointers. The article walks through memory layout showing how &str is a 16-byte fat pointer (pointer + length), why literals get 'static lifetime from .rodata, and how sub-slicing is zero-cost. Code examples and memory diagrams make the concepts concrete for developers coming from Python or JavaScript.
- •&str is a 16-byte fat pointer (pointer + length), not a null-terminated C string
- •String literals live in .rodata with 'static lifetime — returning them is safe
- •Sub-slicing is zero-cost: just a new fat pointer, no allocation or copy
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



