In 2019, the WASI standardization effort was started in the WebAssembly CG as a way to bootstrap an ecosystem of safe, portable WebAssembly modules running outside (or inside) the browser. The starting point of the design, captured in WASI “Preview1”, included tried-and-true POSIX concepts like files and directories. However, as the standards group worked to realize high-level goals including language neutrality, low-latency startup, low-overhead virtualization, heterogeneous host environments, fine-grained sandboxing and robust composition of programs from modules, the approach of mapping classic POSIX concepts into WebAssembly kept running into problems and a new approach had to be explored. Two years (and one pandemic) later, based on experience gained from Preview1, an improved design has emerged that splits the problem in two, factoring out a foundational “component model” layer that is implemented by the WebAssembly engine, providing a more lightweight, composable, declarative unit of code, along with new Wit and World syntax for defining WASI and other component interfaces. This talk will describe some of the original problems and how they are proposed to be addressed, present some examples of next-iteration WASI interfaces in action and discuss paths of incremental adoption.
☞ Using WebAssembly With Node.js
☞ Best Vue UI Component Libraries for 2019
☞ WASM Components: The Interchangeable Parts of Software
☞ Building a menu component using Vue.js + Tailwind CSS
☞ Learn about React Hooks and Styled Components in this full tutorial.