3 पॉइंट द्वारा GN⁺ 2024-10-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Rwf, Rust में web application बनाने के लिए एक व्यापक framework है
  • यह क्लासिक MVC pattern (model-view-controller) का उपयोग करके बनाया गया है, और तेज़ व सुरक्षित web apps को आसानी से बनाने के लिए ज़रूरी सब कुछ डिफ़ॉल्ट रूप से प्रदान करता है

फीचर ओवरव्यू

  • HTTP server
  • PostgreSQL queries को आसानी से लिखने के लिए user-friendly ORM
  • Dynamic templates
  • Authentication और built-in user sessions
  • Middleware
  • Background jobs और scheduled tasks
  • Database migrations
  • JSON serialization को support करने वाला built-in REST framework
  • WebSockets support
  • Static file hosting
  • Backend-driven SPA बनाने के लिए Hotwired Turbo के साथ गहरा integration
  • Environment-specific configuration
  • Logging और metrics
  • CLI
  • Django/Flask apps से migrate करने के लिए WSGI server

क्विक स्टार्ट

  • Rwf को अपने stack में जोड़ने के लिए एक Rust binary application बनाएं और dependencies में rwf और tokio जोड़ें:
cargo add rwf  
cargo add tokio@1 --features full  
  • App बनाना इतना आसान है:
use rwf::prelude::*;  
use rwf::http::Server;  
  
#[derive(Default)]  
struct IndexController;  
  
#[async_trait]  
impl Controller for IndexController {  
    async fn handle(&self, request: &Request) -> Result {  
        Ok(Response::new().html("Hey Rwf!"))  
    }  
}  
  
#[tokio::main]  
async fn main() {  
    Server::new(vec![  
        route!("/" => IndexController),  
    ])  
    .launch("0.0.0.0:8000")  
    .await  
    .unwrap();  
}  

स्थिति

  • Rwf अभी शुरुआती development stage में है और production-ready नहीं है। कई features और documents अभी अधूरे हैं।

GN⁺ का सारांश

  • Rwf, Rust में web applications बनाने के लिए एक शक्तिशाली framework है, जो MVC pattern का उपयोग करके तेज़ और सुरक्षित web apps के आसान development के लिए कई सुविधाएँ देता है।
  • चूंकि यह अभी शुरुआती development stage में है, इसलिए production environment में इसका उपयोग कठिन हो सकता है, लेकिन विभिन्न features और documentation लगातार update होने की संभावना है।
  • यह उन developers के लिए उपयोगी है जो Rust का उपयोग करके web applications बनाना चाहते हैं, और उन मामलों में भी मददगार हो सकता है जहाँ Django या Flask जैसे मौजूदा frameworks से migration पर विचार किया जा रहा हो।
  • समान सुविधाएँ देने वाले अन्य Rust-आधारित web frameworks में Actix, Rocket आदि शामिल हैं।

1 टिप्पणियां

 
GN⁺ 2024-10-23
Hacker News टिप्पणियाँ
  • Go भाषा की standard library के उपयोग से जटिल web framework dependencies कम होती हैं, सुरक्षा बढ़ती है, और maintenance आसान होता है, इस बात पर ज़ोर दिया गया

    • यह भी राय दी गई कि Rust में web framework अब भी उपयोगी हो सकते हैं
  • web MVC framework इस्तेमाल करने के अनुभव से यह सीख मिली कि business logic को model layer में नहीं रखना चाहिए

    • service layer की मज़बूती से सिफारिश की गई, और Interactor जैसे gem का उपयोग करके इसे command object के रूप में लागू करने का सुझाव दिया गया
  • यह अपेक्षा जताई गई कि REST framework Swagger definitions अपने-आप generate कर सके

    • यह भी जिज्ञासा जताई गई कि मौजूदा ORM या template engine का उपयोग किए बिना इन्हें खुद क्यों विकसित किया गया
  • नए framework के लिए नाम चुनने को ऐसा अच्छा तरीका बताया गया जिससे search results में ऊपर आना संभव हो सके

    • यह उल्लेख किया गया कि नए ideas को explore करना महत्वपूर्ण है
  • Python से Rust में migration में रुचि दिखाई गई

    • सुझाव दिया गया कि बड़े पैमाने पर इसे Reverse Proxy से संभालना चाहिए
  • चेतावनी दी गई कि ORM को web framework की built-in सुविधा के रूप में शामिल करना शुरुआत में उचित लग सकता है, लेकिन समय के साथ वह स्वतंत्र project बन सकता है या फिर किसी दूसरे ORM का उपयोग करने की इच्छा हो सकती है

  • कहा गया कि Rails और Django जैसे strong opinions वाले frameworks की और ज़रूरत है

  • Rust में एक बड़ी कमी को भरने वाले framework के आने पर उत्साह व्यक्त किया गया

  • Django development के अनुभव से MVC का मूल्य समझ में आने की बात कही गई, और नए framework को देखने का उल्लेख किया गया

  • Rust backend काम के लिए विभिन्न frameworks का मूल्यांकन करने के बाद Axum को सबसे उपयुक्त माना गया

    • नए framework को "batteries included, but not too prescriptive" के मानदंड पर पूरी तरह खरा बताया गया