مدير الحزم Cargo: إنشاء، بناء، وتشغيل أول مشروع لك


ماذا سنتعلم؟ اليوم سنخوض أولى خطواتنا في عالم Rust، حيث سنتعلم كيفية استخدام مدير الحزم Cargo لإنشاء، بناء، وتشغيل مشروع Rust بسيط.

الخطوة 1: إنشاء مشروع Rust جديد باستخدام Cargo

Cargo هو الأداة الأساسية لإدارة مشاريع Rust. لإنشاء مشروع جديد، نستخدم الأمر cargo new.

ملاحظة تقنية: الأمر cargo new hello_cargo لا يقوم بإنشاء مجلد المشروع فحسب، بل يقوم أيضاً بتهيئة مستودع Git افتراضي له، وإنشاء ملف Cargo.toml وملف src/main.rs أساسيين.

cargo new hello_cargo
cd hello_cargo

بعد تنفيذ هذه الأوامر، ستجد مجلداً جديداً باسم hello_cargo يحتوي على بنية المشروع الأساسية.

الخطوة 2: فهم بنية المشروع وملف Cargo.toml

داخل مجلد hello_cargo، ستجد ملفين مهمين: Cargo.toml و src/main.rs.

ملف Cargo.toml

هذا الملف هو بيان المشروع الخاص بك. يحتوي على بيانات وصفية حول مشروعك والتوابع (dependencies) التي يعتمد عليها.

# هذا هو ملف Cargo.toml الافتراضي
[package]
name = "hello_cargo" # اسم المشروع
version = "0.1.0" # إصدار المشروع
edition = "2021" # إصدار Rust المستخدم

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
# هنا ستضاف التوابع (المكتبات) التي سيعتمد عليها مشروعك

ملف src/main.rs

هذا هو الملف الذي يحتوي على كود مصدر تطبيقك الرئيسي.

// هذا هو الملف الافتراضي src/main.rs
fn main() { // الدالة الرئيسية التي يتم تنفيذها عند تشغيل البرنامج
    println!("Hello, world!"); // طباعة "Hello, world!" إلى وحدة التحكم
}

كما ترى، Cargo يقوم بإنشاء برنامج "Hello, world!" جاهز للتشغيل افتراضياً.

الخطوة 3: بناء المشروع وتشغيله

الآن بعد أن فهمنا بنية المشروع، حان وقت بناء وتشغيل تطبيقنا.

ملاحظة تقنية: عند تشغيل cargo run لأول مرة، يقوم Cargo تلقائياً ببناء المشروع قبل تشغيله. إذا لم تكن هناك تغييرات في الكود، فإنه يستخدم النسخة المبنية مسبقاً.

cargo build

سيقوم هذا الأمر بتجميع (compile) مشروعك وإنشاء ملف تنفيذي في مجلد target/debug/.

cargo run

سيقوم هذا الأمر ببناء وتشغيل مشروعك مباشرةً. يمكنك أيضاً تشغيل الملف التنفيذي يدوياً بعد البناء:

./target/debug/hello_cargo

الكود النهائي الكامل

بالنسبة لهذا الدرس، الكود الرئيسي موجود في src/main.rs وهو كما يلي. الأوامر هي ما قمنا بتنفيذه في الخطوات السابقة.

src/main.rs

fn main() { // الدالة الرئيسية التي يتم تنفيذها عند تشغيل البرنامج
    println!("Hello, world!"); // طباعة "Hello, world!" إلى وحدة التحكم
}

النتيجة المتوقعة

عند تنفيذ الأمر cargo run، ستظهر النتيجة التالية على سطر الأوامر:

Hello, world!

هذا يؤكد أن مشروع Rust الأول الخاص بك قد تم إنشاؤه، بناؤه، وتشغيله بنجاح باستخدام Cargo.