Book Image

Practical WebAssembly

By : Sendil Kumar Nellaiyapen
Book Image

Practical WebAssembly

By: Sendil Kumar Nellaiyapen

Overview of this book

Rust is an open source language tuned toward safety, concurrency, and performance. WebAssembly brings all the capabilities of the native world into the JavaScript world. Together, Rust and WebAssembly provide a way to create robust and performant web applications. They help make your web applications blazingly fast and have small binaries. Developers working with JavaScript will be able to put their knowledge to work with this practical guide to developing faster and maintainable code. Complete with step-by-step explanations of essential concepts, examples, and self-assessment questions, you’ll begin by exploring WebAssembly, using the various tools provided by the ecosystem, and understanding how to use WebAssembly and JavaScript together to build a high-performing application. You’ll then learn binary code to work with a variety of tools that help you to convert native code into WebAssembly. The book will introduce you to the world of Rust and the ecosystem that makes it easy to build/ship WebAssembly-based applications. By the end of this WebAssembly Rust book, you’ll be able to create and ship your own WebAssembly applications using Rust and JavaScript, understand how to debug, and use the right tools to optimize and deliver high-performing applications.
Table of Contents (15 chapters)
Section 1: Introduction to WebAssembly
Section 2: WebAssembly Tools
Section 3: Rust and WebAssembly

What this book covers

Chapter 1, Understanding LLVM, gives a brief introduction to LLVM, what it is, and how to use it.

Chapter 2, Understanding Emscripten, introduces you to Emscripten, where you will build and run your first WebAssembly module.

Chapter 3, Exploring WebAssembly Modules, explores the WebAssembly module, what the module consists of, and what the different sections are.

Chapter 4, Understanding WebAssembly Binary Toolkit, explores how to install and use WebAssembly Binary Toolkit (WABT).

Chapter 5, Understanding Sections in WebAssembly Modules, explores various sections inside the WebAssembly binary and what their purpose is.

Chapter 6, Installing and Using Binaryen, explores how to install and use Binaryen.

Chapter 7, Integrating Rust with WebAssembly, starts by looking at Rust and various ways to convert Rust into a WebAssembly module and ends by looking at wasm_bindgen.

Chapter 8, Bundling WebAssembly Using wasm-pack, explores wasm-pack and how it makes it easy to build Rust and WebAssembly applications.

Chapter 9, Crossing the Boundary between Rust and WebAssembly, focuses on how wasm-bindgen, along with crates such as js-sys and web-sys, helps to share entities from WebAssembly with JavaScript.

Chapter 10, Optimizing Rust and WebAssembly, introduces various ways to optimize Rust and WebAssembly with examples.