Axum Rust: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Axum क्या है और इसकी आवश्यकता क्यों है?

Axum, Rust भाषा के लिए एक आधुनिक, एर्गोनॉमिक और उच्च-प्रदर्शन वाला वेब फ्रेमवर्क है, जिसे Tokio टीम ने विकसित किया है। यह लोकप्रिय क्रेट्स tokio, tower और hyper पर आधारित है, जो बॉक्स से बाहर उच्च प्रदर्शन और एसिंक्रोनस सुविधाएँ प्रदान करता है।

Axum का मुख्य उद्देश्य डेवलपर्स को वेब एप्लिकेशन और API बनाने के लिए एक सहज API प्रदान करना है, साथ ही Rust की पूरी शक्ति और सुरक्षा को बनाए रखना है। "निम्न-स्तरीय" समाधानों के विपरीत, Axum HTTP प्रोटोकॉल की जटिलता को एब्सट्रैक्ट करता है, जिससे आप व्यावसायिक तर्क पर ध्यान केंद्रित कर सकते हैं।

Axum निम्नलिखित के लिए आदर्श है:

  • RESTful API और माइक्रोसर्विसेज बनाना
  • सर्वर-साइड रेंडरिंग वाले वेब एप्लिकेशन विकसित करना
  • प्रॉक्सी सर्वर और मिडलवेयर बनाना
  • WebSocket कनेक्शन लागू करना
  • ऐसे सभी परिदृश्य जहाँ उच्च प्रदर्शन और विश्वसनीयता की आवश्यकता हो

Axum इंस्टॉलेशन

चूँकि Rust एक कंपाइल की जाने वाली भाषा है, इंस्टॉलेशन Cargo पैकेज मैनेजर के माध्यम से होता है। अपनी Cargo.toml फ़ाइल में निम्नलिखित डिपेंडेंसी जोड़ें:

[dependencies]
axum = "0.7"
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tower-http = { version = "0.5", features = ["cors", "trace"] }
tracing = "0.1"
tracing-subscriber = "0.3"

इसके बाद, डिपेंडेंसी डाउनलोड और कंपाइल करने के लिए cargo build कमांड चलाएँ।

त्वरित शुरुआत: Axum पर पहला एप्लिकेशन

src/main.rs फ़ाइल बनाएँ और एक सरल HTTP सर्वर लिखें:

use axum::{
    routing::get,
    Router,
};
use std::net::SocketAddr;

#[tokio::main]
async fn main() {
    // राउटर बनाएँ
    let app = Router::new()
        .route("/", get(root_handler))
        .route("/hello/:name", get(hello_handler));

    // सर्वर शुरू करें
    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    println!("सर्वर चालू है {}", addr);
    
    axum::Server::bind(&addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}

async fn root_handler() -> &'static str {
    "मुख्य पृष्ठ पर आपका स्वागत है!"
}

async fn hello_handler(axum::extract::Path(name): axum::extract::Path) -> String {
    format!("नमस्ते, {}!", name)
}

cargo run कमांड से सर्वर चलाएँ और ब्राउज़र में http://localhost:3000/hello/दुनिया खोलें।

Axum के मुख्य तरीके और फंक्शन

1. Router::new()

विवरण: एक नया खाली राउटर बनाता है। यह आपके एप्लिकेशन को कॉन्फ़िगर करने का मुख्य प्रवेश बिंदु है।

पैरामीटर: कोई नहीं।

उदाहरण:

use axum::Router;

let app: Router = Router::new();

2. Router::route()

विवरण: निर्दिष्ट पथ पर दिए गए HTTP मेथड और हैंडलर के साथ एक रूट जोड़ता है।

पैरामीटर:

  • path: &str — रूट का पथ (डायनामिक सेगमेंट हो सकते हैं, जैसे /users/:id)
  • method_router: MethodRouter — get(), post(), put(), delete() आदि को कॉल करने का परिणाम

उदाहरण:

use axum::{routing::get, Router};

async fn users_list() -> &'static str { "उपयोगकर्ताओं की सूची" }
async fn create_user() -> &'static str { "उपयोगकर्ता बनाना" }

let app = Router::new()
    .route("/users", get(users_list).post(create_user));

3. routing::get(), post(), put(), delete()

विवरण: संबंधित HTTP मेथड के लिए हैंडलर बनाते हैं।

पैरामीटर:

  • handler: Handler — एक एसिंक्रोनस फंक्शन जो अनुरोध को संसाधित करता है

अनुशंसाएँ