ข้ามไปยังเนื้อหา

บทนำ: WebAssembly คืออะไร?

WebAssembly (Wasm) คือ รูปแบบคำสั่ง binary แบบพกพา ที่ออกแบบมาสำหรับ virtual machine แบบ stack-based ไม่ใช่ภาษาโปรแกรมที่คุณเขียนด้วยมือในการใช้งานจริง แต่เป็น compilation target: binary ที่กะทัดรัดและผ่านการตรวจสอบแล้ว ซึ่ง browser, server และ edge runtime สามารถโหลดและรันได้ด้วยความเร็วใกล้เคียง native

ลองนึกภาพแบบเดียวกับ bytecode ใน JVM หรือ CLR แต่ถูกออกแบบให้เป็น vendor-neutral และรันได้ทุกที่ ไม่ว่าจะเป็น Chrome, Firefox, Safari, Node.js, Deno, Cloudflare Workers และอื่นๆ อีกมาก

คอร์สนี้พาคุณจากผู้ไม่มีความรู้เลยไปสู่การเป็น Wasm practitioner ที่มั่นใจ ต่อไปนี้คือสิ่งที่แต่ละ module ครอบคลุม:

Moduleหัวข้อ
1 — บทนำWasm คืออะไร, ความสัมพันธ์ binary/text, โมเดล stack VM
2 — WAT Text Formatการเขียน WebAssembly Text format ด้วยมือเพื่อทำความเข้าใจพื้นฐาน
3 — JS Interopการเรียก Wasm จาก JavaScript และการรับส่งข้อมูลระหว่างกัน
4 — Linear Memoryหลักการทำงานของ flat memory model ของ Wasm และการแชร์กับ JS
5 — Languages to Wasmการคอมไพล์ Rust, C/C++ และ AssemblyScript เป็น .wasm
6 — Toolingwasm-pack, wasm-bindgen, emcc, การปรับแต่ง, การ debug
7 — WASIWebAssembly System Interface — การรัน Wasm นอก browser

ไฟล์ .wasm ทุกไฟล์เริ่มต้นจากซอร์สโค้ดในภาษาระดับสูง คอมไพเลอร์อ่านซอร์สนั้นและสร้าง binary กะทัดรัดที่ runtime โหลดโดยตรง

flowchart LR
  A["Rust / C / C++ / AssemblyScript"] --> B["Compiler
(rustc / emcc / asc)"]
  B --> C[".wasm binary"]
  C --> D["Browser
(JS + Wasm API)"]
  C --> E["Server / Edge
(Node.js / WASI)"]
ภาษาต้นทาง → คอมไพเลอร์ → ไฟล์ .wasm binary → runtime
WebAssembly คืออะไร?
ในการใช้งานจริง ไฟล์ .wasm ไบนารีมักถูกสร้างโดย...
WebAssembly รันได้ที่ไหนบ้าง?