27 Juni 2023 [Programming, Rust, Tech]
Hingga saat ini saya telah mengikuti panduan resmi dan menggunakan Webpack untuk mengemas kode Rust+Wasm saya untuk dijalankan di browser.
Tapi hari ini saya menemukan bahwa tidak perlu webpack sama sekali! Ini membuat pengembangan lebih cepat, dengan lebih sedikit ketergantungan.
Pengaturan
Sebelum Anda mulai:
Buat proyek
cargo new --lib smol-but-rusty
Ini akan membuat proyek baru. Edit kargo.tomlnya agar terlihat seperti ini:
[package] name = "smol-but-rusty" version = "0.1.0" edition = "2021" [lib] crate-type = ["cdylib", "rlib"] [dependencies] wasm-bindgen = "0.2.63"
Tulis kode Anda
Ubah src/lib.rs agar terlihat seperti ini:
use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn say_hello() -> String { "Hello, world!".to_owned() }
Fungsi apa pun yang ingin Anda hubungi dari JavaScript harus dijelaskan seperti ini. (Catatan: Ada banyak batasan pada jenis apa yang dapat Anda terima dan kembalikan, untuk membuat WASS kompatibel dengan JavaScript.)
Membangunnya
cd smol-but-rusty
cargo build
wasm-pack build --target=web
Ini akan membuat direktori PKG yang berisi Wasm dan Wrappers yang dikompilasi.
Merujuknya dari html
Buat direktori baru yang disebut www. Di dalam, buat file index.html dan buat terlihat seperti ini:
<!DOCTYPE html>
<html>
<body>
<script type="module">
import init, { say_hello } from './smol_but_rusty.js';
async function run() {
await init();
const p = document.createElement("p");
p.innerText = say_hello();
document.body.appendChild(p);
}
run();
</script>
</body>
</html>
Kode yang disebut Say_Hello memanggil fungsi karat yang Anda tulis dari JavaScript. Ini telah dikompilasi ke dalam WASM di PKG/SMOL_BUT_RUSTY_BG.WASM, dan dibungkus oleh beberapa JavaScript di PKG/SMOL_BUT_RUSTY.JS.
Campurkan Wasm dengan HTML
Kami menempatkan index.html di luar pkg karena pkg adalah untuk barang yang dihasilkan, dan index.html diberi kode tangan.
Sekarang kami menggabungkannya bersama dengan:
cp www/* pkg/
Sajikan
Untuk melihat ini di browser web, sajikan melalui server web. Misalnya, jika Anda punya python3:
cd pkg python3 -m http.server
Sekarang kunjungi dan jika Anda beruntung Anda akan melihat ini:
Jika tidak, periksa langkah -langkah di atas mencari pesan kesalahan, dan tekan F12 di browser Anda dan klik konsol untuk melihat kesalahan di sana.
Tidak ada webpack!
Tidak ada webpack yang digunakan dalam membuat kode ini. Hanya karat yang dikompilasi untuk Wasm dan diimpor ke browser web modern.
Anda dapat menulis tes seperti biasa dan menjalankannya dengan tes kargo. Anda juga dapat menjalankan tes Anda di browser (!) Dengan tes wasm-pack–firefox –lless jika Anda memiliki wasm-bindgen-test = “0.3.13” di Anda [dev-dependencies] di Cargo.toml.
Anda dapat menulis kode karat yang Anda sukai, selama fungsi yang dijelaskan dengan #[wasm_bindgen] Bekerja dengan cara yang mereka butuhkan untuk kompatibilitas JavaScript.
Anda juga dapat menambahkan banyak dependensi rust murni dalam kargo.toml. Sebagian besar hal akan dikompilasi tanpa masalah untuk WASM, dan jika tidak, kadang -kadang Anda dapat mengaktifkan fitur yang membuatnya berfungsi.
Anda mungkin ingin memperbarui kargo.toml Anda untuk memasukkan beberapa hal baik dalam contoh CARGO.toml, termasuk mengoptimalkan ukuran (opt-level = “s”), menyiapkan console_error_panic_hook khusus untuk membuat kesalahan lebih baik, dan mungkin bahkan alokasi yang lebih kecil wee_alloc.
News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door
Download Film
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.
