- 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
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 टिप्पणियां
Hacker News टिप्पणियाँ
Go भाषा की standard library के उपयोग से जटिल web framework dependencies कम होती हैं, सुरक्षा बढ़ती है, और maintenance आसान होता है, इस बात पर ज़ोर दिया गया
web MVC framework इस्तेमाल करने के अनुभव से यह सीख मिली कि business logic को model layer में नहीं रखना चाहिए
यह अपेक्षा जताई गई कि REST framework Swagger definitions अपने-आप generate कर सके
नए framework के लिए नाम चुनने को ऐसा अच्छा तरीका बताया गया जिससे search results में ऊपर आना संभव हो सके
Python से Rust में migration में रुचि दिखाई गई
चेतावनी दी गई कि ORM को web framework की built-in सुविधा के रूप में शामिल करना शुरुआत में उचित लग सकता है, लेकिन समय के साथ वह स्वतंत्र project बन सकता है या फिर किसी दूसरे ORM का उपयोग करने की इच्छा हो सकती है
कहा गया कि Rails और Django जैसे strong opinions वाले frameworks की और ज़रूरत है
Rust में एक बड़ी कमी को भरने वाले framework के आने पर उत्साह व्यक्त किया गया
Django development के अनुभव से MVC का मूल्य समझ में आने की बात कही गई, और नए framework को देखने का उल्लेख किया गया
Rust backend काम के लिए विभिन्न frameworks का मूल्यांकन करने के बाद Axum को सबसे उपयुक्त माना गया