- 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
Komentar Hacker News
Menekankan bahwa penggunaan pustaka standar bahasa Go dapat mengurangi ketergantungan pada framework web yang kompleks, meningkatkan keamanan, dan memudahkan pemeliharaan
Dari pengalaman menggunakan framework web MVC, didapat pelajaran bahwa logika bisnis sebaiknya tidak ditempatkan di lapisan model
Berharap framework REST dapat menghasilkan definisi Swagger secara otomatis
Menilai pemilihan nama framework baru sebagai cara yang baik agar bisa muncul di peringkat atas hasil pencarian
Tertarik pada migrasi dari Python ke Rust
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