WebAssembly Binary
WebAssembly (Wasm) เป็นรูปแบบคำสั่ง binary สำหรับเครื่องเสมือนแบบ stack ช่วยให้ได้ประสิทธิภาพใกล้เคียง native ในเว็บเบราว์เซอร์สำหรับแอปพลิเคชัน เช่น เกม ตัดต่อวิดีโอ CAD และการจำลองทางวิทยาศาสตร์ โค้ดจาก C, C++, Rust และ Go คอมไพล์เป็น Wasm เพื่อทำงานข้ามแพลตฟอร์ม
ประเภท MIME
application/wasm
ประเภท
ไบนารี
การบีบอัด
ไม่สูญเสียคุณภาพ
ข้อดี
- + Near-native execution speed in web browsers
- + Compile from C, C++, Rust, Go, and more
- + Sandboxed execution for security
- + Portable — runs in browsers and server-side via WASI
ข้อเสีย
- − No direct DOM access — requires JavaScript interop
- − Debugging is harder than JavaScript
- − Binary format is not human-readable
เมื่อใดควรใช้ .WASM
ใช้ Wasm สำหรับแอปพลิเคชันเว็บที่ใช้ CPU เข้มข้น การย้ายโค้ด native ไปยังเบราว์เซอร์ และ serverless edge functions ผ่าน WASI
รายละเอียดทางเทคนิค
Wasm ใช้รูปแบบ binary กะทัดรัดที่มีฟังก์ชันแบบมีชนิด หน่วยความจำเชิงเส้น และขั้นตอนการตรวจสอบที่รับรองความปลอดภัย ทำงานในสภาพแวดล้อม sandbox โดยไม่เข้าถึง DOM โดยตรง — สะพาน JavaScript ให้บริการ I/O WASI ขยาย Wasm สำหรับใช้ฝั่ง server
ประวัติ
W3C เปิดตัว WebAssembly 1.0 ในปี 2017 พัฒนาโดย Mozilla, Google, Microsoft และ Apple ออกแบบเป็นเป้าหมายการคอมไพล์สำหรับเว็บ เสริม JavaScript ด้วยประสิทธิภาพที่แน่นอนและคาดเดาได้