الذاكرة (Memory)
تملك برامج رست (Rust) ثلاث مناطق ذاكرة أين يتم تخزين البيانات فيها:
- ذاكرة البيانات (data memory) - من أجل البيانات ثابتة الحجم و ساكنة (static) - على سبيل المثال: البيانات المتوفرة دائمًا طوال عمر البرنامج -. نأخذ مثلا النص الموجود في برنامجك مرحبا بالعالم ("Hello World!"): فبايتات (bytes) هذا النص يتم قراءتها إلا من مكان واحد وبالتالي يمكن تخزينها في هذه المنطقة. ويقوم مترجمو اللغة (Compilers) بالعديد من التحسينات على هذا النوع من البيانات وعلى العموم فالوصول الى هذه البيانات يعتبر سريعا جدا بإعتبار الموقع معلوم وثابت.
- ذاكرة المكدس (stack memory) - وهي للبيانات التي تم التصريح عليها كمتغيرات ضمن دالة (function). وموقع هذه الذاكرة لا يتغير أبدا طوال مدة إستدعاء الدالة؛ ونظرا لهذا فإن مترجمي اللغة (Compilers) يستطيعون القيام بتحسين على الشيفرة البرمجية (code) . إذا حتى الوصول إلى البيانات في المكدس (stack) يكون سريع جدا. وترتب البيانات في المكدس (stack) على شكل قائمة خطية من العناصر.
- ذاكرة الكومة (heap memory) - وهي للبيانات التي تم إنشاؤها خلال تشغيل التطبيق. يمكن إضافة (add) البيانات في هذه المنطقة، أو نقلها (moved)، أو إزالتها (removed)، أو تغيير حجمها (resized)، وما إلى ذلك. ونظرًا لطبيعتها الديناميكية، فإن الوصول اليها بشكل عام بطيء عند الاستخدام، ولكنها تسمح باستخدامات أكثر إبداعًا للذاكرة. عند إضافة البيانات إلى هذه المنطقة، فإننا نسميها تخصيصا (allocation). وعندما تتم إزالة البيانات من هذا القسم، فإننا نسميها إلغاء تخصيص (deallocation). وترتب البيانات في الكومة (heap) على شكل بنية شجرية.