إطار عمل CLI لـ Rust: clap

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة
```html

ما هو clap؟

clap (Command Line Argument Parser) هو إطار عمل قوي وسريع لإنشاء واجهات سطر الأوامر (CLI) بلغة Rust. يسمح للمطورين بتحديد الوسائط والخيارات والأوامر الفرعية بسهولة، كما يقوم تلقائياً بإنشاء التعليمات. يشتهر clap بأدائه العالي وأمانه وسهولة استخدامه. وهو واحد من أشهر الكريتات (crates) في نظام Rust البيئي للعمل مع CLI.

لماذا نحتاج clap؟

إنشاء تطبيقات CLI يدوياً هو عملية شاقة تتطلب معالجة السلاسل النصية والتحقق من الصحة وتنسيق الأخطاء. clap يحل هذه المشاكل: فهو يقوم تلقائياً بتحليل الوسائط (parsing)، والتحقق من الأنواع، وإنشاء التعليمات (--help)، ومعالجة الأخطاء. إذا كنت تكتب أداة مساعدة، أو أداة DevOps، أو أي أداة كونسول بلغة Rust، فإن clap سيوفر لك ساعات من التطوير ويجعل الكود أنظف.

كيفية التثبيت؟

أضف التبعية (dependency) إلى ملف Cargo.toml:

[dependencies]clap = { version = "4.5", features = ["derive"] }

أو قم بالتثبيت عبر cargo:

cargo add clap --features derive

الوظائف الأساسية

  • التحليل التصريحي (Declarative Parsing) — استخدام السمات (derive attributes) لتحديد الوسائط.
  • دعم الأوامر الفرعية — واجهات على نمط git (مثل git commit -m).
  • الإكمال التلقائي — إنشاء سكريبتات لـ Bash و Zsh و Fish.
  • التحقق من الصحة — التحقق من العدد والأنواع ونطاقات القيم.
  • الإخراج الملون — تمييز الأخطاء والتعليمات بالألوان.

مثال كود بلغة Rust

use clap::Parser;

#[derive(Parser)]#[command(name = "greeter")]#[command(about = "تحية بسيطة")]struct Cli { /// اسم المستخدم name: String,

/// عدد التكرارات #[arg(short, long, default_value_t = 1)] count: u8,}

fn main() { let cli = Cli::parse(); for _ in 0..cli.count { println!("مرحباً، {}!", cli.name); }}

التشغيل: cargo run -- --help سيعرض التعليمات المُنشأة تلقائياً.

متى نستخدمه؟

clap مثالي لأي أداة CLI بلغة Rust: الأدوات المساعدة للنظام، أدوات البناء، محللات الكود، سكريبتات الأتمتة. إذا كان تطبيقك يقبل وسائط سطر أوامر، فإن clap سيكون الخيار الأفضل. كما أنه مناسب لإنشاء واجهات معقدة تحتوي على العديد من الأوامر الفرعية (كما في Docker أو Git).

بفضل الكتابة الصارمة للأنواع في Rust وماكروات clap، يتم اكتشاف الأخطاء في CLI أثناء مرحلة التجميع، مما يجعل التطبيقات أكثر موثوقية. إنه المعيار الفعلي (de facto) لـ CLI في عالم Rust.

```

توصيات