Rocket Rust: पूरी गाइड उदाहरणों के साथ
यह क्या है और क्यों ज़रूरी है?
Rocket, Rust भाषा के लिए एक आधुनिक वेब फ्रेमवर्क है जो डेवलपमेंट की सुविधा, सुरक्षा और प्रदर्शन को सबसे आगे रखता है। कई अन्य वेब फ्रेमवर्क के विपरीत, Rocket कोड की सटीकता जांचने के लिए Rust की शक्तिशाली टाइप सिस्टम का उपयोग करता है, जिससे कंपाइल टाइम पर ही कई runtime त्रुटियों से बचा जा सकता है। यह रूटिंग के लिए डिक्लेरेटिव API, Serde के माध्यम से सीरियलाइज़ेशन/डीसीरियलाइज़ेशन के लिए बिल्ट-इन सपोर्ट, फॉर्म और URL से डेटा की ऑटोमैटिक वैलिडेशन, और ट्रेट्स पर आधारित middleware सिस्टम प्रदान करता है।
Rocket की ज़रूरत क्यों है? अगर आप Rust में वेब एप्लिकेशन (API, वेबसाइट, माइक्रोसर्विस) बनाना चाहते हैं जिसमें न्यूनतम बॉयलरप्लेट कोड और अधिकतम सुरक्षा हो, तो Rocket सबसे अच्छा विकल्प है। यह उन प्रोजेक्ट्स के लिए विशेष रूप से उपयुक्त है जहाँ विश्वसनीयता महत्वपूर्ण है: वित्तीय सेवाएँ, डेटा प्रबंधन सिस्टम, मोबाइल ऐप का बैकएंड। Tokio पर आधारित एसिंक्रोनस आर्किटेक्चर के कारण, Rocket हजारों समवर्ती कनेक्शनों को आसानी से संभाल सकता है।
Rocket के मुख्य लाभ: टाइप-सेफ रूट्स (कंपाइलर जाँचता है कि आप वहाँ स्ट्रिंग न भेजें जहाँ नंबर अपेक्षित है), Rocket.toml के माध्यम से ऑटोमैटिक डॉक्यूमेंटेशन जनरेशन, WebSocket के लिए बिल्ट-इन सपोर्ट, Diesel या SQLx के माध्यम से डेटाबेस के साथ आसान काम, और शून्य-लागत एब्स्ट्रैक्शन — सभी जाँच कंपाइल टाइम पर होती हैं, runtime को धीमा किए बिना।
इंस्टॉलेशन
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"] }
इंस्टॉलेशन पूरा हो गया। अब आप Rocket के साथ Rust में वेब एप्लिकेशन बना सकते हैं।
त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण
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("/