Rocket لـ Rust: دليل شامل مع أمثلة عملية

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

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

ابدأ الدورة

Rocket لـ Rust: دليل شامل مع أمثلة عملية

ما هو Rocket ولماذا تحتاجه؟

Rocket هو إطار عمل ويب حديث للغة Rust، يركز على سهولة التطوير والأمان والأداء العالي. على عكس العديد من أطر العمل الأخرى، يستخدم Rocket نظام الأنواع القوي في Rust للتحقق من صحة الكود في مرحلة الترجمة، مما يمنع حدوث فئة كاملة من الأخطاء التشغيلية. يوفر Rocket واجهة برمجية تصريحية لتوجيه المسارات، ودعمًا مدمجًا للتسلسل وإلغاء التسلسل عبر Serde، والتحقق التلقائي من صحة البيانات من النماذج وعناوين URL، بالإضافة إلى نظام وسيط قائم على السمات.

لماذا تحتاج إلى Rocket؟ إذا كنت تكتب بلغة Rust وتريد بناء تطبيق ويب (API، موقع، خدمة مصغرة) بأقل قدر من الكود النمطي وأقصى درجات الأمان، فإن Rocket هو الخيار الأمثل. إنه مناسب بشكل خاص للمشاريع التي تتطلب موثوقية عالية: الخدمات المالية، أنظمة إدارة البيانات، الواجهة الخلفية لتطبيقات الجوال. بفضل بنيته غير المتزامنة القائمة على Tokio، يمكن لـ Rocket التعامل بسهولة مع آلاف الاتصالات المتزامنة.

المزايا الرئيسية لـ Rocket: مسارات آمنة من حيث الأنواع (يتحقق المترجم من أنك لن تمرر سلسلة نصية إلى مكان يتوقع رقمًا)، توليد تلقائي للتوثيق عبر Rocket.toml، دعم مدمج لـ WebSocket، عمل سهل مع قواعد البيانات عبر Diesel أو SQLx، و تكلفة صفرية للتجريدات — يتم إجراء جميع عمليات التحقق في مرحلة الترجمة دون إبطاء وقت التشغيل.

التثبيت

للعمل مع Rocket، ستحتاج إلى تثبيت Rust (يُوصى بالإصدار 1.75+). يتم تثبيت الإطار عبر مدير الحزم Cargo. أضف التبعية إلى ملف Cargo.toml الخاص بمشروعك:

[package]
name = "my_rocket_app"
version = "0.1.0"
edition = "2021"

[dependencies]
rocket = "0.5.1"

بعد ذلك، قم بتنفيذ الأمر التالي لتحميل التبعيات:

cargo build

للعمل مع JSON، ستحتاج إلى إضافة Serde:

rocket = { version = "0.5.1", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }

اكتمل التثبيت. الآن يمكنك إنشاء تطبيقات ويب بلغة Rust باستخدام Rocket.

بداية سريعة — مثال عملي بسيط

أنشئ ملفًا باسم src/main.rs بالمحتوى التالي:

#[macro_use] extern crate rocket;

#[get("/")]
fn index() -> &'static str {
    "مرحبًا، عالم Rocket!"
}

#[launch]
fn rocket() -> _ {
    rocket::build().mount("/", routes![index])
}

قم بتشغيل التطبيق باستخدام الأمر cargo run. بعد الترجمة، افتح المتصفح وانتقل إلى العنوان http://localhost:8000. سترى الرسالة "مرحبًا، عالم Rocket!". تهانينا، أول تطبيق لك باستخدام Rocket يعمل!

شرح الكود: #[get("/")] — سمة تشير إلى أن الدالة تعالج طلبات GET إلى المسار الجذري. #[launch] — ماكرو ينشئ نقطة الدخول. rocket::build() ينشئ نسخة من التطبيق، و .mount() يربط المسارات بالمسار الأساسي.

الدوال والطرق الأساسية

1. #[get(path)] — معالجة طلبات GET

التوقيع: #[get("/path")] fn handler() -> T

الوظيفة: سمة تسجل الدالة كمعالج لطلبات HTTP GET على المسار المحدد. يتم تسلسل القيمة المُعادة تلقائيًا إلى استجابة HTTP.

#[get("/                    

توصيات