The WebAssembly System Interface and Node.js
summary
WASI provides a sandboxed system-call API for WebAssembly and Node.js adds experimental support via a C library and bindings. The implementation uses uv-wasi embedded into Node (wasi core module lands in v13.3, backported to v12, enabled with --experimental-wasi-unstable-preview1 and --experimental-wasm-bigint), offers tracing and a return-on-exit mode to avoid process kill, ships a small JavaScript API and a convenience package wasi-worker, and runs on wasm3 for broader platform coverage.
AI-written summary · about
chapters (24)
- 0:00Start
- 16:59WebAssembly in Node.js - Continued
- 17:52Introducing WASI
- 19:33Security Model
- 20:56Defining the Sandbox with Preopens
- 22:18Accessing a Resource
- 23:57WASI Reactors
- 24:28Compiling from C to WebAssembly
- 25:14Think of JavaScript WebAssembly...
- 25:32Introducing uvwasi
- 25:53WASI Support in Node.js
- 26:39Node.js WASI Example
- 27:23Interfacing with Wasm Memory
- 28:38Tracing WASI Execution
- 28:53WASI Trace via Node.js
- 29:33WASI Trace via uvwasi
- 29:46Running Multiple WASI Commands
- 30:15Current Limitations
- 30:30The wasi-worker Module
- 30:47wasi-worker Example
- 31:02Meet the new WASI stack!
- 31:30WASI Integration with WABT
- 31:41Future Work
- 32:02The End!
related talks
35mWebAssembly beyond the browser
32mBringing WebAssembly outside the web with WASI
33mWebAssembly: The Next Frontier of Cloud Computing
38mWebAssembly for the backend
30mDemystifying the WASM Landscape: A Primer
13mUnleashing the Power of WebAssembly System Interface (WASI) in Go
42mWebAssembly beyond the browser
21mKeynote: WASI - A new kind of system interface & what it means for cloud native
