3 poin oleh GN⁺ 2024-10-23 | 1 komentar | Bagikan ke WhatsApp
  • Rwf adalah framework komprehensif untuk membangun aplikasi web dengan Rust
  • Ditulis menggunakan pola MVC (model-view-controller) klasik, dan secara bawaan menyediakan semua yang dibutuhkan untuk membangun aplikasi web yang cepat dan aman dengan mudah

Ikhtisar fitur

  • Server HTTP
  • ORM yang ramah pengguna untuk menulis kueri PostgreSQL dengan mudah
  • Template dinamis
  • Autentikasi dan sesi pengguna bawaan
  • Middleware
  • Pekerjaan latar belakang dan pekerjaan terjadwal
  • Migrasi database
  • Framework REST bawaan dengan dukungan serialisasi JSON
  • Dukungan WebSockets
  • Hosting file statis
  • Integrasi erat dengan Hotwired Turbo untuk membangun SPA yang digerakkan backend
  • Konfigurasi per lingkungan
  • Logging dan metrik
  • CLI
  • Server WSGI untuk migrasi dari aplikasi Django/Flask

Mulai cepat

  • Untuk menambahkan Rwf ke stack, buat aplikasi biner Rust dan tambahkan rwf serta tokio ke dependensi:
cargo add rwf  
cargo add tokio@1 --features full  
  • Membangun aplikasi sesederhana berikut ini:
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();  
}  

Status

  • Rwf masih berada pada tahap pengembangan awal dan belum siap untuk produksi. Banyak fitur dan dokumentasi masih belum lengkap.

Ringkasan GN⁺

  • Rwf adalah framework kuat untuk membangun aplikasi web dengan Rust, yang menggunakan pola MVC dan menyediakan beragam fitur untuk memudahkan pengembangan aplikasi web yang cepat dan aman.
  • Karena masih berada pada tahap pengembangan awal, framework ini mungkin sulit digunakan di lingkungan produksi, tetapi berbagai fitur dan dokumentasinya akan terus diperbarui.
  • Framework ini berguna bagi pengembang yang ingin mengembangkan aplikasi web dengan Rust, dan juga dapat membantu jika mempertimbangkan migrasi dari framework yang sudah ada seperti Django atau Flask.
  • Framework web berbasis Rust lain dengan fitur serupa mencakup Actix dan Rocket.

1 komentar

 
GN⁺ 2024-10-23
Komentar Hacker News
  • Menekankan bahwa penggunaan pustaka standar bahasa Go dapat mengurangi ketergantungan pada framework web yang kompleks, meningkatkan keamanan, dan memudahkan pemeliharaan

    • Mengemukakan pendapat bahwa di Rust, framework web tetap bisa berguna
  • Dari pengalaman menggunakan framework web MVC, didapat pelajaran bahwa logika bisnis sebaiknya tidak ditempatkan di lapisan model

    • Sangat merekomendasikan lapisan layanan, serta menyarankan implementasi sebagai objek perintah menggunakan gem seperti Interactor
  • Berharap framework REST dapat menghasilkan definisi Swagger secara otomatis

    • Penasaran mengapa memilih mengembangkan sendiri tanpa memakai ORM atau mesin template yang sudah ada
  • Menilai pemilihan nama framework baru sebagai cara yang baik agar bisa muncul di peringkat atas hasil pencarian

    • Menyebutkan bahwa mengeksplorasi ide-ide baru itu penting
  • Tertarik pada migrasi dari Python ke Rust

    • Menyarankan agar pada skala besar hal tersebut ditangani dengan Reverse Proxy
  • Memperingatkan bahwa memasukkan ORM sebagai fitur bawaan framework web mungkin tampak masuk akal pada awalnya, tetapi seiring waktu bisa menjadi proyek terpisah atau muncul keinginan untuk memakai ORM lain

  • Menyebut bahwa dibutuhkan lebih banyak framework dengan pendirian kuat seperti Rails dan Django

  • Mengungkapkan antusiasme terhadap peluncuran framework yang mengisi kekosongan utama di Rust

  • Melalui pengalaman pengembangan dengan Django, menyadari nilai MVC dan menyebut akan melihat framework baru ini

  • Setelah mengevaluasi berbagai framework untuk pekerjaan backend Rust, menyimpulkan bahwa Axum adalah yang paling cocok

    • Menilai framework baru ini sangat sesuai dengan kriteria "batteries included, tapi tidak terlalu preskriptif"