Програми на Rust мають три регіони пам'яті для збереження даних:
пам'ять даних (data memory) - для даних фіксованого розміру та static (статичних) даних (таких, які будуть доступні на протязі всього життєвого циклу програми) Розглянемо текст програми наприклад, т.з. "Hello World!": Байти цього рядка ніколи не зміняться і будуть тільки прочитані, тому можуть бути збережені в цьому регіоні. Компілятори роблять достатньо багато оптимізацій щодо даних цього типу. До даних з цього регіону здійснюється швидкий доступ, оскільки їх положення й розмір відомі.
стек (stack memory) - дані, що були оголошені як змінні всередині функції. Положення даних в цьому регіоні ніколи не змінюється протягом виклику функції, тому компілятор має змогу оптимізувати код задля швидкого доступу до цих даних.
пам'ять кучі (heap memory) - дані, що створені під час виконання програми. Дані цього регіону можуть бути додані, переміщені, видалені, їх розмір може бути змінений тощо. Через динамічну природу їх можна розглядать як дані з менш швидким доступом, але з ширшими можливостями щодо креативу. Розміщення даних в цьому регіоні називається алокацією (allocation). Видалення даних з цього регіону називається деалокацією (deallocation).