Running Code Locally with Cargo

إذا كنت تريد تجربة الكود على نظامك الخاص، فستحتاج أولاً إلى تثبيت Rust. قم بذلك باتباع التعليمات في كتاب Rust. يجب أن يمنحك هذا rustc و cargo يعملان. في وقت كتابة هذا، تحتوي أحدث إصدارات Rust المستقرة على هذه الأرقام:

% rustc --version
rustc 1.69.0 (84c898d65 2023-04-16)
% cargo --version
cargo 1.69.0 (6e9a83356 2023-04-12)

يمكنك استخدام أي إصدار لاحق أيضًا لأن Rust يحافظ على التوافق العكسي (backwards compatibility).

مع وجود هذا، اتبع هذه الخطوات لبناء ملف ثنائي (binary) لـ Rust من أحد الأمثلة في هذا التدريب:

  1. انقر على زر "نسخ إلى الحافظة (Copy to clipboard)" على المثال الذي تريد نسخه.

  2. استخدم cargo new exercise لإنشاء دليل جديد exercise/ لكودك:

    $ cargo new exercise
         Created binary (application) `exercise` package
    
  3. انتقل إلى exercise/ واستخدم cargo run لبناء وتشغيل الملف الثنائي الخاص بك:

    $ cd exercise
    $ cargo run
       Compiling exercise v0.1.0 (/home/mgeisler/tmp/exercise)
        Finished dev [unoptimized + debuginfo] target(s) in 0.75s
         Running `target/debug/exercise`
    Hello, world!
    
  4. استبدل الكود النموذجي في src/main.rs بكودك الخاص. على سبيل المثال، باستخدام المثال في الصفحة السابقة، اجعل src/main.rs يبدو كالتالي:

    fn main() {
        println!("حررني (Edit me)!");
    }
  5. استخدم cargo run لبناء وتشغيل الملف الثنائي المحدث الخاص بك:

    $ cargo run
       Compiling exercise v0.1.0 (/home/mgeisler/tmp/exercise)
        Finished dev [unoptimized + debuginfo] target(s) in 0.24s
         Running `target/debug/exercise`
    Edit me!
    
  6. استخدم cargo check للتحقق بسرعة من مشروعك بحثًا عن الأخطاء، واستخدم cargo build لترجمته دون تشغيله. ستجد المخرجات في target/debug/ لبناء تصحيح عادي. استخدم cargo build --release لإنتاج بناء إصدار محسن في target/release/.

  7. يمكنك إضافة التبعيات (dependencies) لمشروعك عن طريق تحرير Cargo.toml. عند تشغيل أوامر cargo، سيقوم تلقائيًا بتنزيل وتجميع التبعيات (dependencies) المفقودة لك.

حاول تشجيع المشاركين في الفصل على تثبيت Cargo واستخدام محرر محلي (local editor). سيسهل ذلك حياتهم لأنهم سيكون لديهم بيئة تطوير عادية (normal development environment).