WebAssembly (WASM) adalah format kode biner tingkat rendah portabel yang berjalan di browser modern, seperti halnya JavaScript. Bahkan, WebAssembly juga dapat dioperasikan dengan JavaScript. Anda dapat mengubah sebagian besar kode sumber program ke WebAssembly dan menjalankannya di browser dengan atau tanpa JavaScript.

Rust cepat, menjadikan bahasa ini sebagai opsi yang layak untuk membangun program WebAssembly. Ada banyak perpustakaan dan kerangka kerja Rust untuk membantu, dengan dukungan untuk alat yang Anda gunakan untuk membangun aplikasi web.

1. Perpustakaan Sycamore

Sycamore adalah kerangka kerja reaktif seperti SolidJS yang cepat, ergonomis, dan intuitif. Anda dapat menggunakannya untuk membangun aplikasi web di Rust yang memanfaatkan kekuatan WebAssembly. Sycamore menyediakan sebagian besar fungsionalitas yang Anda perlukan untuk membuat antarmuka aplikasi web di Rust, jadi Anda tidak perlu menulis JavaScript.

Sycamore juga menyediakan interoperabilitas router dan JavaScript melalui Wasm-Bindgen menggunakan JS-sys atau Web-Sys. Proyek ini bermaksud untuk segera merilis pengujian dan fungsionalitas CSS.

instagram viewer

Untuk menggunakan Sycamore, Anda memerlukan Rust versi terbaru—the wasm32-tidak diketahui-tidak diketahui target. Anda juga memerlukan Trunk untuk membangun dan menggabungkan aplikasi Anda. Karena Sycamore baru, akan berisiko menggunakan perpustakaan cabang utama dalam produksi, kecuali jika Anda menggunakan rilis sebelumnya.

2. Kerangka Yew

Yew adalah kerangka kerja Rust untuk membangun aplikasi web frontend multithreaded menggunakan WebAssembly. Ini memungkinkan Anda untuk menulis kode Rust dan mengubah kode Rust Anda ke WASM, yang dapat berjalan di perangkat apa pun dengan dukungan WASM. Yew dapat dioperasikan dengan JavaScript (Anda dapat menggunakan paket npm), dan framework menyediakan makro untuk berinteraksi dengan elemen HTML dengan Rust, seperti JSX di React.

Anda dapat memulai dengan Yew menggunakan bundler aplikasi Trunk atau WASMPack. Lihat dokumentasi untuk cara memulai, berinteraksi dengan HTML, dan API DOM dan transpile kode Rust Anda ke WebAssembly.

Proyek Yew sangat populer, dengan lebih dari dua puluh ribu bintang di Github dan lima ribu pengguna. Yew stabil, tetapi proyeknya belum siap produksi, dan basis kodenya berubah, jadi Anda mungkin mengalami kesalahan dan kerusakan.

3. Perpustakaan Percy

Percy adalah kumpulan perpustakaan Rust untuk membangun aplikasi web frontend yang didukung oleh WebAssembly. Percy mendukung rendering sisi server instan. Proyek ini unggul dalam membangun aplikasi satu halaman (SPA) yang ramah mesin pencari.

Percy menyediakan html! makro untuk menghasilkan DOM virtual. Anda dapat merender ini menjadi elemen DOM di frontend atau menggunakannya untuk operasi di backend aplikasi Anda.

Percy masih sangat baru, dan meskipun perpustakaannya belum siap produksi, proyek ini sangat populer, dengan lebih dari dua ribu bintang di Github.

4. Kerangka Benih

Benih adalah kerangka kerja WebAssembly yang dilengkapi baterai dan full-stack untuk membangun aplikasi web cepat di Rust. Kerangka kerja Seed menyediakan sistem templating yang menggunakan sintaks makro alih-alih sintaks seperti JSX Yew. Ini juga memiliki sistem manajemen negara bagian untuk meningkatkan produktivitas.

Benih baru, dan komponen yang dibuat sebelumnya seperti pemetik tanggal jarang terjadi. Meskipun Seed saat ini tidak mendukung rendering sisi server, proyek ini bertujuan untuk segera menyertakannya. Jika tidak, Seed memiliki fitur lengkap, dan Anda dapat membangun aplikasi web siap produksi dengannya. Seed juga menggunakan arsitektur Elm dengan konfigurasi minimal. Anda dapat membangun dan menggabungkan aplikasi Anda menggunakan Trunk, Web Bundler, atau Seeder.

Anda juga dapat menggunakan Seed untuk backend aplikasi web Anda. Seed menyediakan fungsionalitas untuk membangun REST atau GraphQL API dengan dukungan perutean dan otentikasi serta integrasi AuthO.

MoonZoon adalah kerangka kerja yang mudah digunakan, full-stack, didukung WebAssembly untuk aplikasi frontend dan backend. Anda dapat menulis Rust tanpa harus menulis HTML, CSS, dan JavaScript di frontend atau REST, GraphQL, atau SQL di backend. MoonZoon cepat, sederhana, terukur, dan ramah SEO. Ini menyediakan aplikasi CLI untuk membangun aplikasi web yang mudah digunakan.

Filosofi proyek MoonZoon adalah membuat alat yang sangat sederhana tanpa terminologi khusus, hambatan buatan, atau dogma. Dengan menggunakannya, Anda dapat fokus membangun aplikasi web sesuka Anda. Anda harus menginstal WASM-Pack untuk membangun front end. Backend aplikasi MoonZoon berjalan di Actix-web dan Warp, keduanya merupakan framework backend Rust yang populer. MoonZoon juga menyediakan fungsionalitas otentikasi.

Dokumentasi MoonZoon tidak dihosting saat ini. Untuk menggunakan alat ini, Anda dapat memeriksa file penurunan harga di dokumen folder melalui proyek Repositori GitHub.

Anda Mungkin Berinteraksi Dengan WebAssembly

WebAssembly pertama kali dirilis pada tahun 2017, dan World Wide Web Consortium (W3C) menjadikan WebAssembly sebagai standar web pada tahun 2019. Sejak 2019, perusahaan seperti Cloudflare, Google, dan Dropbox telah menggunakan teknologi ini dalam produksi.

Google Earth menggunakan WebAssembly, Cloudflare menggunakannya untuk Cloudflare Worker, dan Dropbox menggunakan WebAssembly untuk codec di situs webnya.