Clap — إطار CLI قوي لـ Rust

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

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

ابدأ الدورة

ما هو Clap؟

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

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

كتابة محلل وسائط يدويًا هي مهمة شاقة وعرضة للأخطاء. يتولى Clap جميع المهام الروتينية: التحقق من صحة الأنواع، والتحقق من المعلمات الإلزامية، وتوليد التلميحات، وإخراج تعليمات المساعدة الملونة. بفضل derive macros، يصبح الكود تصريحيًا وموجزًا.

التثبيت

أضف إلى Cargo.toml:

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

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

  • تحليل تلقائي للوسائط والأعلام
  • دعم الأوامر الفرعية المتداخلة (على غرار git)
  • توليد تعليمات المساعدة والإصدار
  • التحقق من صحة القيم (النطاقات، قائمة القيم الممكنة)
  • الإكمال التلقائي لـ bash/zsh/fish/powershell
  • إخراج الأخطاء بالألوان

مثال على الكود

use clap::Parser;

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

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

/// الإخراج بالأحرف الكبيرة #[arg(short, long)] uppercase: bool,}

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

متى تستخدم Clap؟

استخدم Clap إذا كنت تطور:

  • أدوات سطر الأوامر (مثل grep, sed, curl)
  • أدوات DevOps و CI/CD
  • CLI معقدة تحتوي على العديد من الأوامر الفرعية (مثل git أو cargo)
  • أي مشروع بلغة Rust يتطلب إدخالًا من المستخدم عبر الطرفية

Clap هو المعيار الفعلي لـ CLI في Rust. فهو يجمع بين الأداء الأقصى وسهولة التطوير.

توصيات