रस्ट आपके चैट-बॉट के 'दिमाग' में गोली क्यों है
\n\nअगर आप Python में बॉट लिखने के आदी हैं और सोचते हैं कि इससे तेज़ कुछ नहीं हो सकता — तो आपने Rust को नहीं आज़माया। Rust सिर्फ गति नहीं देता, बल्कि हर बाइट पर नियंत्रण देता है। रस्ट में चैट-बॉट बिजली की गति से काम करते हैं, बहुत कम मेमोरी खपत करते हैं, और रनटाइम त्रुटियों से नहीं गिरते। इस गाइड में हम एक वास्तविक Telegram-बॉट बनाएंगे जो कमांड प्रोसेस करता है, संदेशों का जवाब देता है, और ऐसा प्रदर्शन देता है जो इंटरप्रेटेड भाषाओं के लिए असंभव है।
\n\nहम शुरुआत से बॉट लिखेंगे, teloxide और reqwest क्रेट का उपयोग करके। आप देखेंगे कि एसिंक्रोनस रस्ट हजारों अनुरोधों को कितनी आसानी से संभालता है, और क्यों रस्ट में चैट-बॉट बनाना आपके प्रोजेक्ट की स्थिरता में निवेश है।
पर्यावरण सेटअप और पहला रन
\n\nकोड लिखने से पहले, सुनिश्चित करें कि आपके पास Rust स्थापित है। यदि नहीं, तो यह चलाएँ:
\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n\ncargo को PATH में जोड़ें और एक नया प्रोजेक्ट बनाएँ:
cargo new rust_tg_bot\ncd rust_tg_bot\n\nअब Cargo.toml खोलें और निर्भरताएँ जोड़ें:
[dependencies]\nteloxide = { version = "0.12", features = ["macros"] }\nreqwest = { version = "0.11", features = ["json"] }\ntokio = { version = "1", features = ["full"] }\nserde = { version = "1.0", features = ["derive"] }\n\nये क्रेट हमारे बॉट की नींव हैं। teloxide Telegram API के लिए एक शक्तिशाली फ्रेमवर्क है, और reqwest HTTP अनुरोध (जैसे बाहरी API) करने की अनुमति देगा।
टोकन प्राप्त करें और बॉट का 'कंकाल' लिखें
\n\n@BotFather पर जाएँ, एक नया बॉट बनाएँ और टोकन कॉपी करें। इसे पर्यावरण चर में सहेजें:
\n\nexport TELOXIDE_TOKEN=आपका_टोकन_यहाँ\n\nअब बॉट का सबसे सरल संस्करण लिखें जो /start कमांड का जवाब देता है:
use teloxide::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n pretty_env_logger::init();\n log::info!("रस्ट में चैट-बॉट शुरू कर रहे हैं...");\n\n let bot = Bot::from_env();\n\n teloxide::repl(bot, |bot: Bot, msg: Message| async move {\n if let Some(text) = msg.text() {\n if text == "/start" {\n bot.send_message(msg.chat.id, "नमस्ते! मैं रस्ट में बना बॉट हूँ 🦀")\n .await?;\n }\n }\n Ok(())\n })\n .await;\n}\n\ncargo run चलाएँ और बॉट को /start लिखें। अगर सब ठीक है — आपको अभिवादन मिलेगा। ध्यान दें: teloxide के साथ रस्ट में बॉट लिखना न्यूनतम कोड की आवश्यकता है, लेकिन अधिकतम प्रदर्शन देता है।
यह कैसे काम करता है?
\n- \n
Bot::from_env()— पर्यावरण चरTELOXIDE_TOKENसे टोकन पढ़ता है। \n teloxide::repl— संदेश प्रसंस्करण का अनंत लूप। \n - प्रत्येक संदेश क्लोजर को भेजा जाता है, जहाँ हम टेक्स्ट की जाँच करते हैं और उत्तर भेजते हैं। \n
कमांड और आर्गुमेंट प्रोसेसिंग जोड़ना
\n\nसरल उत्तर — उबाऊ है। चलिए /echo कमांड बनाते हैं जो उपयोगकर्ता के टेक्स्ट को दोहराता है। इसके लिए teloxide से Command-एनोटेशन का उपयोग करें:
use teloxide::utils::command::BotCommand;\n\n#[derive(BotCommand)]\n#[command(rename = "lowercase", description = "उपलब्ध कमांड:")]\nenum Command {\n #[command(description = "अभिवादन दिखाएँ।")]\n Start,\n #[command(description = "आपका टेक्स्ट दोहराएँ।")]\n Echo(String),\n}\n\nasync fn answer(bot: Bot, msg: Message, cmd: Command) -> ResponseResult<()> {\n match cmd {\n Command::Start => {\n bot.send_message(msg.chat.id, "नमस्ते! मैं रस्ट में इको-बॉट हूँ।").await?;\n }\n Command::Echo(text) => {\n bot.send_message(msg.chat.id