The Rust Ecosystem
يتكون النظام البيئي ل Rust من عدد من الأدوات، من أهمها:
-
rustc
: مترجم Rust الذي يحول ملفات.rs
إلى ملفات تنفيذية وصيغ وسيطة أخرى. -
cargo
: مدير التبعية وأداة البناء لـ Rust. يعرف Cargo كيفية تنزيل التبعيات، عادةً ما تكون مستضافة على https://crates.io، وسوف يمررها إلىrustc
عند بناء مشروعك. يأتي Cargo أيضًا مع مشغل اختبارات مدمج يستخدم لتنفيذ الإختبارات الوحدة. -
rustup
: مثبت ومحدث أدوات Rust. تُستخدم هذه الأداة لتثبيت وتحديثrustc
وcargo
عند إصدار نسخ جديدة من Rust. بالإضافة إلى ذلك، يمكن لـrustup
أيضًا تنزيل التوثيق للمكتبة القياسية(standard library). يمكنك تثبيت عدة إصدارات من Rust في وقت واحد وrustup
سيسمح لك بالتبديل بينها حسب الحاجة.
نقاط رئيسية:
-
لدى Rust جدول إصدارات سريع مع إصدار جديد كل ستة أسابيع. تحافظ الإصدارات الجديدة على التوافق العكسي مع الإصدارات القديمة --- بالإضافة إلى إِتاحة وظائف جديدة.
-
هناك·ثلاث·قنوات·إصدار:·"stable"·(مستقر)،·"beta"·(بيتا)،·و"nightly"·(ليلي).
-
يتم اختبار الميزات الجديدة على "nightly" (ليلي)، و"beta" (بيتا) هو ما يصبح "stable" (مستقر) كل ستة أسابيع.
-
يمكن أيضًا حل التبعيات من سجلات بديلة، git، المجلدات، والمزيد.
-
لدى Rust أيضًا إصدارات: الإصدار الحالي هو Rust 2021. الإصدارات السابقة كانت Rust 2015 و Rust 2018.
-
تُسمح الإصدارات بإجراء تغييرات غير متوافقة (backwards incompatible) مع الإصدارات السابقة على اللغة.
-
لتجنب إفساد الكود (breaking code)، تكون الإصدارات اختيارية (opt-in): يمكنك اختيار الإصدار لمكتبتك عبر ملف
Cargo.toml
. -
لتجنب تقسيم النظام البيئي، يمكن لمترجمات Rust مزج الكود المكتوب لإصدارات مختلفة.
-
اذكر أنه من النادر جدًا استخدام المترجم مباشرةً دون استخدام
cargo
(معظم المستخدمين لا يفعلون ذلك). -
قد يكون من المفيد الإشارة إلى أن Cargo نفسه هو أداة قوية وشاملة للغاية. إنه قادر على العديد من الميزات المتقدمة بما في ذلك على سبيل المثال لا الحصر:
- هيكل المشروع/الحزمة (Project/package structure)
- مساحات العمل
- تبعيات التطوير (Dev Depenedency) و إدارة/تخزين مُؤَقَّتٌ للتبعيات وقت التشغيلالتشغيل (Runtime Dependency management/caching)
- برمجة البناء (build scripting)
- التثبيت الشامل
- كما أنه قابل للتوسعة باستخدام ملحقات الأوامر الفرعية (sub command plugins) أيضًا (مثل cargo clippy).
-
اقرأ المزيد من الكتاب الرسمي لـ Cargo
-