WebAssembly for IoT Devices: Interfacing with USB and I2C Hardware
summary
Shows working prototypes and code (open source) that let WebAssembly talk to real hardware: WASI-USB based on libusb and a WASI-I2C API based on embedded-hal, plus GPIO/SPI work in progress. Runtime tests use Wasmtime JIT and an ESP32 microcontroller prototype with 265 KB RAM. Measured overhead is tiny: ~+2–5 µs on x86, about +45 µs (≈8%) on Raspberry Pi; USB throughput drops ~0.6% (x86) / 4.1% (RPI). Demo runs an Xbox USB driver and Pac‑Man entirely in WebAssembly, swapping drivers as intended.
AI-written summary · about
chapters (9)
- 0:00WebAssembly for IoT intro
- 3:56Why WASM solves IoT distribution
- 7:07Cyber-physical WebAssembly interfaces
- 10:18Standardizing WASI USB/I2C APIs
- 13:30WASM driver overhead
- 18:29Live demo: WASI USB Xbox
- 21:43Future of portable drivers
- 22:03Academic workshop
- 23:54Q&A on WASM security
related talks
32mBringing WebAssembly outside the web with WASI
34mWebAssembly at the IoT Edge
40mWASM on Zephyr: Securely Running Code in Any Language
41mWebAssembly: From the Browser to... Everywhere?
36mPractical WebAssembly
48mWebAssembly Beyond the Browser
26mWebAssembly for a Reactive Internet of Things
44mWebAssembly
