Rust में Telegram बॉट: क्यों आज़माएं?
\nRust सिर्फ एक और सिस्टम प्रोग्रामिंग भाषा नहीं है। यह अविश्वसनीय गति, मेमोरी सुरक्षा (बिना garbage collector के) और शानदार concurrency प्रदान करता है। ऐसी दुनिया में जहां हर मिलीसेकंड की देरी आपको यूज़र खो सकती है, Rust पर Telegram बॉट डेवलपर के लिए एक तुरुप का पत्ता है। आपको C++ जैसी परफॉरमेंस मिलती है, लेकिन कहीं ज़्यादा आसान syntax और सख्त type system के साथ, जो कंपाइल टाइम पर ही एरर पकड़ लेता है।
\nइस गाइड में हम टूल्स इंस्टॉल करने से लेकर एक काम करने वाले बॉट को पब्लिश करने तक का सफर तय करेंगे। आप सीखेंगे कि कमांड कैसे हैंडल करें, स्टेट्स के साथ कैसे काम करें, और बॉट को सर्वर पर कैसे डिप्लॉय करें। अगर आप Rust की बेसिक्स जानते हैं लेकिन कभी बॉट नहीं बनाया - स्वागत है। अगर Rust में नए हैं - घबराएं नहीं, हम कदम-दर-कदम चलेंगे।
\n\nशुरुआत के लिए क्या चाहिए
\nकोड में कूदने से पहले, सुनिश्चित करें कि आपके पास ये हैं:
\n- \n
- Rust और Cargo —
rustupसे इंस्टॉल करें (आधिकारिक साइट rustup.rs)। वर्जन चेक करें:rustc --version\n - Telegram बॉट टोकन — Telegram पर @BotFather से प्राप्त करें। बस
/newbotभेजें और निर्देशों का पालन करें \n - async/await की बुनियादी समझ — Rust में यह
tokioयाasync-stdके ज़रिए किया जाता है \n
हम teloxide लाइब्रेरी का उपयोग करेंगे - यह Rust में Telegram बॉट बनाने के लिए सबसे परिपक्व और डॉक्यूमेंटेड फ्रेमवर्क है। यह tokio पर बना है और सभी प्रकार के इंटरैक्शन के लिए आसान API प्रदान करता है।
\n\nचरण 1: प्रोजेक्ट बनाना और डिपेंडेंसीज़ जोड़ना
\nटर्मिनल खोलें और यह चलाएं:
\ncargo new my_telegram_bot\ncd my_telegram_bot\nअब Cargo.toml फ़ाइल को एडिट करें और डिपेंडेंसीज़ जोड़ें:
[package]\nname = "my_telegram_bot"\nversion = "0.1.0"\nedition = "2021"\n\n[dependencies]\nteloxide = { version = "0.12", features = ["macros"] }\ntokio = { version = "1", features = ["full"] }\nlog = "0.4"\nenv_logger = "0.10"\nसमझाएं: teloxide हमारा मुख्य टूल है, tokio async runtime है, log और env_logger आसान लॉगिंग के लिए हैं।
चरण 2: पहला रन — इको बॉट
\nचलिए एक सबसे सरल बॉट बनाते हैं जो भेजे गए टेक्स्ट को वापस भेजता है। src/main.rs की सामग्री को बदलें:
use teloxide::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n 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 bot.send_message(msg.chat.id, text).await?;\n }\n Ok(())\n })\n .await;\n}\nध्यान दें: Bot::from_env() TELOXIDE_TOKEN नामक एनवायरनमेंट वेरिएबल खोजता है। प्रोजेक्ट की रूट में .env फ़ाइल बनाएं या टोकन मैन्युअली एक्सपोर्ट करें:
export TELOXIDE_TOKEN="आपका_बॉट_टोकन"\nबॉट चलाएं: cargo run। Telegram पर इसे कोई भी मैसेज भेजें — इसे जवाब देना चाहिए। बधाई हो, आपका पहला Rust Telegram बॉट काम कर रहा है!
चरण 3: कमांड हैंडल करना और मैसेज फ़िल्टर करना
\nसिर्फ इको करना बोरिंग है। चलिए /start और /help कमांड जोड़ते हैं। हम teloxide के मैक्रोज़ का उपयोग करके एक डायलॉग मशीन (dialogue) बनाएंगे।
use teloxide::prelude::*;\nuse teloxide::utils::command::BotCommand;\n\n#[derive(BotCommand)]\n#[command(rename = "lowercase", description = "उपलब्ध कमांड:")]\nenum Command {\n #[command(description = "बातचीत शुरू करें")]\n Start,\n #[command(description = "मदद दिखाएं")]\n Help,\n}\n\nasy