Learn Rust Coding · درس

Crates وجذر Crate

بنية المشروع

الدرس 4 من 413 خطوة

Crates وجذر Crate درس مجاني في Learn Rust Coding على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn Rust Coding، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.

ما هو الـ Crate؟

يُعد crate أصغر وحدة يتعامل معها مترجم Rust. وله نوعان: binary crate يُترجم إلى ملف تنفيذي، وlibrary crate تعتمد عليه شيفرات أخرى.

الثنائي مقابل المكتبة

يحتوي الـ binary crate على دالة main وينتج برنامجًا يمكنك تشغيله. أما الـ library crate فلا يحتوي على main؛ بل يوفّر عناصر قابلة لإعادة الاستخدام لـ crates أخرى.

  • جذر الثنائي: src/main.rs
  • جذر المكتبة: src/lib.rs

جذر الـ Crate

جذر الـ crate هو ملف المصدر الذي يبدأ منه المترجم. وهو قمة شجرة الوحدات، وتشير الكلمة المفتاحية crate في المسار إليه.

fn main() {
    crate::greet();
}

fn greet() {
    println!("hello from the crate root");
}

Cargo والحزم

الـ package هو crate واحد أو أكثر يديرها Cargo، ويصفها الملف Cargo.toml. تحتوي الحزمة على crate واحد للمكتبة كحد أقصى، وأي عدد من crates الثنائية.

يتولى Cargo عملية البناء والاختبار وإدارة التبعيات.

ملف Cargo.toml الأدنى

يعلن ملف البيان عن اسم الحزمة وإصدارها وتبعياتها. ويقرأه Cargo لمعرفة كيفية بناء مشروعك.

  • [package] — الاسم والإصدار والإصدار القياسي
  • [dependencies] — الـ crates الخارجية

بنية المشروع القياسية

يتوقع Cargo بنية تقليدية:

  • src/main.rs — جذر الـ binary crate
  • src/lib.rs — جذر الـ library crate
  • src/bin/ — الملفات الثنائية الإضافية
  • tests/ — اختبارات التكامل

يعني اتباع هذا convention عدم الحاجة إلى أي إعدادات.

توجد الوحدات تحت الجذر

يمكن لجذر الـ crate التصريح عن الوحدات التي تكوّن شجرة الوحدات. وكل ما تبنيه يتفرع من ملف الجذر الواحد هذا.

mod utils {
    pub fn shout(s: &str) -> String {
        s.to_uppercase()
    }
}

fn main() {
    println!("{}", utils::shout("crate"));
}

تقسيم الشيفرة إلى ملفات

عندما يصرّح الجذر عن mod utils; باستخدام فاصلة منقوطة، يحمّل Cargo الملف src/utils.rs. ويصبح محتوى الملف جسم تلك الوحدة، مع الحفاظ على شجرة واحدة موزعة على عدة ملفات.

استخدام مكتبة من ملف ثنائي

في حزمة تحتوي على كل من lib.rs وmain.rs، يشير الملف الثنائي إلى المكتبة باستخدام اسم الحزمة. وتكشف المكتبة عن العناصر pub التي يستخدمها الملف الثنائي.

يحافظ هذا التقسيم على وضع المنطق في المكتبة وجعل نقطة الدخول صغيرة.

إضافة التبعيات

شغّل cargo add rand أو عدّل [dependencies] في Cargo.toml. ينزّل Cargo الـ crate من crates.io ويجعله متاحًا عبر use.

كما يثبّت Cargo الإصدارات الدقيقة في Cargo.lock لضمان عمليات بناء قابلة لإعادة الإنتاج.

الصورة الكاملة

من الأصغر إلى الأكبر: module < crate < package. تنظّم الوحدات الـ crate؛ ويثبت جذر الـ crate الشجرة؛ وتربط الحزمة وCargo كل ذلك معًا.

تحقق سريع

اختبر معرفتك ببنية المشروع.

مراجعة

لقد تعلمت بنية المشروع:

  • الـ crate إما ثنائي أو مكتبة
  • يثبت جذر الـ crate (main.rs أو lib.rs) شجرة الوحدات
  • تجمع الـ package عدة crates ويصفها الملف Cargo.toml
  • يدير Cargo البنية وعمليات البناء والتبعيات
البدء مجانًا

تعلم Rust مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
39
الدروس
144

الأسئلة الشائعة

هل درس «Crates وجذر Crate» مجاني؟

نعم — نص درس «Crates وجذر Crate» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn Rust Coding، انتقل إلى CoddyKit PRO. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.

ماذا ستتعلم في «Crates وجذر Crate»؟

بنية المشروع تتمرن على Learn Rust Coding مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn Rust Coding؟

لا تُشترط خبرة سابقة. Learn Rust Coding على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «Crates وجذر Crate»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn Rust Coding هذا؟

نعم. كل درس في Learn Rust Coding يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الوحدات وmod
  2. pub وإمكانية الوصول
  3. use والمسارات
  4. Crates وجذر Crate
← العودة إلى Learn Rust Coding