This article will take you on a deep technical dive inside WebAssembly (Wasm)

This article will take you on a deep technical dive inside WebAssembly (Wasm).

We will be compiling a simple Rust program to Wasm, and then deploying it on a stand-alone Wasm Virtual Machine (called WAVM). We will also be writing a C program, and then compiling that to Wasm and deploying it on x86_64 hardware (macOS Catalina). The latter task will be performed using Fastly’s native WebAssembly compiler and runtime called Lucet.

Please note: This article is more than just a technical dive into Wasm. This article also discusses the future opportunities of Wasm, in a much broader context.

We will be discussing the use of Wasm as part of blockchain (global decentralised computing) implementations, hardware implementations (portable binaries) and service-oriented architecture (SOA) implementations.

By the end of this article you will have a good understanding of Wasm fundamentals. In addition, you will have learned how to access free resources which will help you to write, compile and execute your own hand written Wasm code. Let’s get started.

What is Wasm?

WASM is a machine-close, platform-independent, low-level, assembly-like language (Reiser and Bläser, 2017). Wasm addresses the problem of safe, fast, portable low-level code on the web (Rossberg et al., 2018).

The Wasm computational model is based on a stack machine, in that instructions manipulate values on an implicit operand stack, consuming (popping) argument values and producing or returning (pushing) result values (webassembly.github.io, 2019).

#webassembly #web-development #rust #c++

The future of WebAssembly (WASM): the hardware-execution revolution!
2.35 GEEK