- Saat mengembangkan web dengan Rust, ada masalah karena tidak ada framework seperti Django sehingga banyak pekerjaan harus dilakukan sendiri
- Untuk memanfaatkan keunggulan Rust seperti sistem tipe, performa, dan waktu build, dibutuhkan framework yang mempermudah pengembangan web
Fitur yang dibutuhkan
- Routing/handler: Dibutuhkan fungsi untuk menghubungkan permintaan ke handler yang akan memprosesnya
- Templat: Harus bisa menghasilkan konten seperti HTML dan JSON
- Penyajian file statis: Dibutuhkan fungsi untuk menyajikan aset seperti file CSS
- Login: Dibutuhkan fitur login untuk aplikasi multi-pengguna
- Manajemen izin: Harus bisa mengelola hak akses untuk tiap pengguna
- Antarmuka database: Dibutuhkan fungsi untuk menyimpan dan mengelola data
- Alat administrasi: Dibutuhkan alat yang mendukung tugas administrasi dasar
- WebSocket: Dibutuhkan fitur WebSocket untuk transmisi data real-time
- Hot reloading: Dibutuhkan fitur yang langsung menerapkan perubahan kode
Fitur tambahan yang dibutuhkan
- Pekerjaan latar belakang: Dibutuhkan fungsi untuk menjalankan tugas sesuai jadwal
- Monitoring/observabilitas: Dibutuhkan fungsi untuk memantau kondisi sistem
- Caching: Dibutuhkan fitur caching untuk meningkatkan performa
- Email dan notifikasi: Dibutuhkan fitur notifikasi untuk mendukung fungsi seperti pengaturan ulang kata sandi
- Alat deployment: Dibutuhkan metode deployment yang konsisten
- Bundling CSS/JS: Dibutuhkan fungsi untuk mengelola file CSS dan JS secara efisien
Ekosistem yang ada
- Framework web: Sudah ada framework seperti actix-web dan axum yang menyediakan fitur minimal
- Kumpulan library: Ada berbagai library untuk templat, login, manajemen izin, dan lainnya, tetapi solusi yang terintegrasi masih kurang
Toolkit web baru
- nicole's web toolkit (newt): Sedang dikembangkan toolkit web yang mengintegrasikan berbagai fitur
- Tujuan: Mendukung agar aplikasi web baru bisa dimulai dengan cepat
- Rencana: Akan menyediakan solusi terintegrasi dengan menggunakan building block yang sudah ada
Ringkasan GN⁺
- Menekankan perlunya framework web terintegrasi agar pengembangan web dengan Rust menjadi lebih mudah
- Memperkenalkan upaya untuk mengatasi keterbatasan framework web dan library yang ada
- Melalui nicole's web toolkit (newt), berbagai fitur ingin diintegrasikan untuk meningkatkan pengalaman developer
- Upaya menghadirkan keunggulan framework seperti Django ke dalam ekosistem Rust layak diperhatikan
- Proyek lain dengan fungsi serupa antara lain actix-web dan axum
1 komentar
Komentar Hacker News
Ini adalah pendapat seseorang yang suka membuat hal-hal menarik dengan usaha seminimal mungkin menggunakan Rust. Menurutnya, Rust unggul dalam efisiensi dan manajemen memori, tetapi untuk pengembangan web, Go atau Django lebih cocok
Rust memberikan keamanan sehingga membantu pengembang mengurangi kesalahan, dan memiliki keunggulan karena kode dapat ditulis bahkan dengan alat sederhana seperti Notepad
Sebagai framework web, ada pendapat bahwa Rocket adalah framework terbaik yang cocok untuk "pengembang malas"
Ada pendapat bahwa dengan memanfaatkan fitur pattern matching Rust, router tidak diperlukan, dan autentikasi bukanlah masalah bahasa atau framework
Alat CSS/JS dianggap tidak cocok untuk framework frontend Rust, dan ada pendapat bahwa Rust sudah cukup matang bahkan untuk web frontend
Ada yang terkejut karena framework Rocket tidak disebutkan, dan berpendapat bahwa Rocket memiliki tujuan sebagai framework "batteries included"
Ada pendapat bahwa melakukan pengembangan web dengan Rust tidak masalah, tetapi ada persoalan konkurensi, dan sulit memilih library komponen
Ada yang meningkatkan UX menggunakan Flutter, dan merasa puas karena integrasinya dengan Rust mudah
Flutter memang tidak menghormati DOM, tetapi tetap menarik karena memudahkan pembuatan UX yang bisa di-deploy ke mana saja
Ada pendapat bahwa Poem mirip dengan FastAPI, tetapi membutuhkan banyak boilerplate pada pengaturan awal
Ungkapan "malas" digunakan dalam arti menginginkan framework web menangani tugas-tugas umum, tetapi pada praktiknya tetap membutuhkan banyak pekerjaan
Ada pendapat bahwa proyek seperti loco-rs, poem, dan rocket sudah menawarkan pengalaman "batteries included", dan CLI akan memandu prosesnya
F# disebut menyediakan sistem tipe dan tooling yang mirip dengan Rust, tetapi pemrosesan asinkron dan manajemen memorinya tidak serumit itu
Penulis disebut menginginkan framework seperti Spring Boot untuk Rust