3 poin oleh GN⁺ 2024-10-07 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2024-10-07
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