الرئيسية قاعدة المعرفة البرمجة والمنطق تعلّم Rust: تثبيت البيئة وكتابة أول برنامج صناعي
البرمجة والمنطق

تعلّم Rust: تثبيت البيئة وكتابة أول برنامج صناعي

ما هي Rust وأين تقع بين لغات البرمجة؟

Rust هي لغة برمجة أنظمة حديثة طوّرتها Mozilla وأُطلقت رسمياً عام 2015. تقع في نفس فئة C و C++ — لغات تتحكم مباشرة بالذاكرة والعتاد — لكنها تضيف طبقة أمان لا مثيل لها: المُجمِّع يكتشف أخطاء الذاكرة قبل التشغيل.

في عالم الصناعة، هذا يعني: برنامج يتحكم بآلة حقيقية لن ينهار بسبب مؤشر فارغ أو تسريب ذاكرة. لهذا تستخدم شركات مثل Amazon وCloudflare وDropbox لغة Rust في أنظمتها الحرجة — ولهذا اختارها فريق Dr. Machine لبناء منصة ERP صناعية كاملة.

هذا الدرس هو الأول في سلسلة من 15 درساً ستأخذك من الصفر إلى بناء أنظمة صناعية حقيقية بلغة Rust.

تثبيت Rust باستخدام rustup

rustup هو المُثبِّت والمُدير الرسمي لأدوات Rust. يتعامل مع تحديث المُجمِّع وإدارة الإصدارات تلقائياً.

على Linux و macOS

افتح الطرفية ونفّذ:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

اختر الخيار الافتراضي (1) عند السؤال. بعد الانتهاء، أعد تحميل بيئة الطرفية:

source $HOME/.cargo/env

على Windows

حمّل وشغّل rustup-init.exe من الموقع الرسمي rustup.rs. ستحتاج أيضاً إلى Visual Studio Build Tools لأن Rust يستخدم رابط MSVC.

التحقق من التثبيت

rustc --version
# rustc 1.78.0 (9b00956e5 2024-04-29)

cargo --version
# cargo 1.78.0 (54d8815d0 2024-03-26)

إذا ظهرت الإصدارات — التثبيت ناجح.

أدوات Rust: rustc وCargo وrustfmt

عند تثبيت Rust تحصل على ثلاث أدوات أساسية:

الأداة الوظيفة متى تستخدمها
rustc المُجمِّع — يحوّل كود Rust إلى ملف تنفيذي نادراً مباشرة (Cargo يستدعيه)
cargo مدير المشاريع والحزم — بناء، اختبار، تشغيل دائماً — الأداة الرئيسية
rustfmt تنسيق الكود تلقائياً بعد كل تعديل لتوحيد الأسلوب

Cargo هو قلب تجربة التطوير في Rust. يشبه npm في JavaScript أو pip في Python، لكنه يفعل أكثر: يبني المشروع، يدير المكتبات الخارجية، يشغّل الاختبارات، وينشئ التوثيق.

أول برنامج: مرحباً يا مصنع!

لنُنشئ أول مشروع Rust:

cargo new hello-factory
cd hello-factory

Cargo أنشأ مجلداً يحوي:

hello-factory/
├── Cargo.toml    # إعدادات المشروع والمكتبات
└── src/
    └── main.rs   # نقطة البداية — الكود الرئيسي

افتح src/main.rs — ستجد:

fn main() {
    println!("Hello, world!");
}

لنعدّله ليطبع رسالة صناعية:

fn main() {
    let machine_name = "CNC-Mill-07";
    let temperature = 42.5;

    println!("مرحباً من آلة {}!", machine_name);
    println!("درجة الحرارة الحالية: {:.1}°C", temperature);
}

شغّل البرنامج:

cargo run

ستحصل على:

مرحباً من آلة CNC-Mill-07!
درجة الحرارة الحالية: 42.5°C

cargo run يُجمّع الكود ويشغّله في خطوة واحدة. إذا أردت التجميع فقط بدون تشغيل: cargo build.

بنية المشروع: ماذا أنشأ Cargo؟

Cargo.toml — هوية المشروع

[package]
name = "hello-factory"
version = "0.1.0"
edition = "2021"

[dependencies]
# المكتبات الخارجية تُضاف هنا
  • name: اسم المشروع (يصبح اسم الملف التنفيذي)
  • version: رقم الإصدار بصيغة SemVer
  • edition: إصدار لغة Rust (2021 هو الأحدث المستقر)
  • dependencies: هنا تضيف المكتبات — مثلاً tokio للبرمجة غير المتزامنة

مجلد src/ — الكود المصدري

كل كود Rust يعيش في src/. الملف main.rs هو نقطة البداية لأي برنامج تنفيذي. لاحقاً ستتعلم تقسيم الكود إلى وحدات (modules) متعددة.

مجلد target/ — نتائج التجميع

عند البناء، ينشئ Cargo مجلد target/ يحوي الملفات التنفيذية والمكتبات المُجمَّعة. هذا المجلد لا يُرسل إلى Git (مُستثنى تلقائياً في .gitignore).

اختيار محرر الأكواد: VS Code مع rust-analyzer

أفضل تجربة تطوير لـ Rust حالياً هي VS Code مع إضافة rust-analyzer:

  1. ثبّت VS Code من code.visualstudio.com
  2. افتح VS Code وثبّت الإضافة: rust-analyzer
  3. افتح مجلد المشروع: File → Open Folder → hello-factory

ما ستحصل عليه:

  • إكمال تلقائي ذكي: يقترح الدوال والأنواع أثناء الكتابة
  • كشف الأخطاء فوري: خطوط حمراء تحت الكود الخاطئ قبل التجميع
  • معلومات الأنواع: ضع المؤشر على متغير لترى نوعه
  • تنسيق تلقائي: عند الحفظ، يُنسّق الكود بأسلوب Rust الرسمي

إضافات مفيدة أخرى:

  • Even Better TOML: لتحرير Cargo.toml بتلوين وإكمال
  • Error Lens: لعرض رسائل الخطأ مباشرة في سطر الكود

الخلاصة

ثبّتنا Rust باستخدام rustup، تعرّفنا على الأدوات الأساسية (rustc, Cargo, rustfmt)، أنشأنا أول مشروع، وفهمنا بنية الملفات. Cargo هو المحرك الذي يدير كل شيء — من البناء إلى الاختبار. في الدرس القادم سنتعمق في المتغيرات والأنواع — اللبنة الأولى لأي برنامج Rust.

Rust Cargo rustup installation toolchain IDE تثبيت Rust بيئة التطوير المُجمِّع كارغو أول برنامج سطر الأوامر