Proyek ini menampilkan obrolan HTML sederhana menggunakan WebRTC dan diprogram dalam Rust dan dikompilasi ke WASM. Demo Langsung
Setelah membaca postingan luar biasa dari tim Cheerp ini, saya ingin melihat apakah hal yang sama dapat dilakukan dengan Rust "murni" menggunakan WASM.
Karena melakukan permainan dari awal terlalu rumit sebagai langkah pertama saya bertujuan untuk bermain bersama Rust, HTML (menggunakan Yew) dan WebRTC dengan melakukan aplikasi chat. 3D dan WebGL akan hadir di lain waktu.
Ternyata tidak terlalu sulit untuk membuat sesuatu berfungsi seperti yang Anda lihat di bawah:
Jika Anda mencoba menjalankan secara lokal, lebih baik menguji dengan Chrome secara lokal karena saya mengalami masalah dengan Firefox. Selain itu, berhati-hatilah karena beberapa ekstensi mungkin memblokir koneksi WebRTC. Selain itu, jika Anda mengujinya dengan teman, ini mungkin tidak berhasil karena saya hanya menggunakan server STUN. Dari pengujian yang saya lakukan, saya menemukan bahwa koneksi sering kali diblokir di jaringan perusahaan dan menggunakan server TURN akan menyelesaikan masalah tersebut. Namun tidak seperti server STUN, tidak ada server TURN gratis. Terakhir, penanganan kesalahan belum sepenuhnya selesai karena saya tidak tahu bagaimana sebenarnya saya menangani kesalahan (dan juga apa yang diizinkan oleh WebRTC API untuk saya lakukan). Jika Anda mengalami kebuntuan, muat ulang halaman di kedua sisi dan coba lagi.
Untuk membangun proyek ini, Anda perlu:
cargo install wasm-pack
cargo install http-server
Untuk menjalankannya setelah dibangun, Anda perlu mengetik
wasm-pack build --target web --no-typescript --out-dir ./static/pkg
static
dengan http-server -p 8080
(Atau Anda dapat menggunakan server file statis seperti python3 -m http.server
)