<p><span>Understand the basic building blocks of WebAssembly and learn, install, and use various tools from the Rust and WebAssembly ecosystem</span></p><h4><span>Key Features</span></h4><ul><li><span><span>Understand the Rust programming language and WebAssembly concepts for web development</span><
Practical WebAssembly: Explore the fundamentals of WebAssembly programming using Rust
โ Scribed by Sendil Kumar Nellaiyapen
- Publisher
- Packt Publishing
- Year
- 2022
- Tongue
- English
- Leaves
- 232
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Understand the basic building blocks of WebAssembly and learn, install, and use various tools from the Rust and WebAssembly ecosystem
Key Features
- Understand the Rust programming language and WebAssembly concepts for web development
- Build web, mobile, and embedded apps using WebAssembly
- Enhance the scalability and resilience of your web apps
Book Description
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.
What you will learn
- Explore WebAssembly and the different tools available in the WebAssembly ecosystem
- Understand the raw WebAssembly binary and the WebAssembly text format
- Use the Web and JavaScript API with wasm-bindgen
- Optimize Rust and WebAssembly for high performance
- Run and debug WebAssembly and Rust code
- Explore various tools available in the RustWASM ecosystem
Who This Book Is For
This book is for JavaScript developers who want to deliver better performance and ship type-safe code. Rust developers or backend engineers looking to build full-stack applications without worrying too much about JavaScript programming will also find the book useful.
Table of Contents
- Understanding LLVM
- Compiling Wasm with Emscripten
- Exploring WebAssembly Modules
- Understanding the WebAssembly Binary Toolkit
- Sections in the WebAssembly Module
- Working with Binaryen
- Integrating Rust with WebAssembly
- Bundling WebAssembly Using wasm-pack
- Crossing Boundaries between Rust and WebAssembly
- Optimizing Rust and WebAssembly
โฆ Table of Contents
Cover
Title page
Copyright and Credits
Dedication
Contributors
Table of Contents
Preface
Section 1: Introduction to WebAssembly
Chapter 1: Understanding LLVM
Technical requirements
Understanding compilers
Compiled languages
Compiler efficiency
Exploring LLVM
LLVM in action
Summary
Chapter 2: Understanding Emscripten
Technical requirements
Installing Emscripten using emsdk
Generating asm.js using Emscripten
Running Hello World with Emscripten in Node.js
Running Hello World with Emscripten in the browser
Exploring other options in emsdk
Listing the tools and SDK
Managing the tools and SDK
Understanding various levels of optimizations
Optimizations
Closure Compiler
Summary
Chapter 3: Exploring WebAssembly Modules
Technical requirements
Understanding how WebAssembly works
Understanding JavaScript execution inside the JavaScript engine
Understanding WebAssembly execution inside the JavaScript engine
Exploring the WebAssembly text format
Building a function in WebAssembly text format
Summary
Section 2: WebAssembly Tools
Chapter 4: Understanding WebAssembly Binary Toolkit
Technical requirements
Getting started with WABT
Installing WABT
Converting WAST into WASM
Converting WASM into WAST
-f or --fold-exprs
Converting WASM into C
simple.h
simple.c
Converting WAST into JSON
Understanding a few other tools provided by WABT
wasm-objdump
wasm-strip
wasm-validate
wasm-interp
Summary
Chapter 5: Understanding Sections in WebAssembly Modules
Technical requirements
Exports and imports
Exports
Imports
Globals
Start
Memory
Summary
Chapter 6: Installing and Using Binaryen
Technical requirements
Installing and using Binaryen
Linux/macOS
Windows
wasm-as
wasm-dis
wasm-opt
wasm2js
Summary
Section 3: Rust and WebAssembly
Chapter 7: Integrating Rust with WebAssembly
Technical requirements
Installing Rust
Converting Rust into WebAssembly via rustc
Converting Rust into WebAssembly via Cargo
Installing wasm-bindgen
Converting Rust into WebAssembly via wasm-bindgen
Summary
Chapter 8: Bundling WebAssembly Using wasm-pack
Technical requirements
Bundling WebAssembly modules with webpack
Bundling WebAssembly modules with Parcel
Introducing wasm-pack
Why do you need wasm-pack?
How to use wasm-pack
Packing and publishing using wasm-pack
Summary
Chapter 9: Crossing the Boundary between Rust and WebAssembly
Technical requirements
Sharing classes from Rust with JavaScript
Sharing classes from JavaScript with Rust
Calling the JavaScript API via WebAssembly
Calling closures via WebAssembly
Importing the JavaScript function into Rust
Calling a web API via WebAssembly
Summary
Chapter 10: Optimizing Rust and WebAssembly
Technical requirements
Minimizing the WebAssembly modules
Analyzing the memory model in the WebAssembly module
Sharing memory between JavaScript and WebAssembly using Rust
Creating a memory object in JavaScript to use in the Rust application
Analyzing the WebAssembly module with Twiggy
top
monos
garbage
Summary
Index
About Packt
Other Books You May Enjoy
โฆ Subjects
WebAssembly; Rust; Web; Mobile; Embedded; WASM;
๐ SIMILAR VOLUMES
Unified Development for Web, Mobile, and Embedded Applications
<span><div><p>WebAssembly fulfills the long-awaited promise of web technologies: fast code, type-safe at compile time, execution in the browser, on embedded devices, or anywhere else. Rust delivers the power of C in a language that strictly enforces type safety. Combine both languages and you can wr
<p><span>WebAssembly fulfills the long-awaited promise of web technologies: fast code, type-safe at compile time, execution in the browser, on embedded devices, or anywhere else. Rust delivers the power of C in a language that strictly enforces type safety. Combine both languages and you can write f
<p><span>WebAssembly fulfills the long-awaited promise of web technologies: fast code, type-safe at compile time, execution in the browser, on embedded devices, or anywhere else. Rust delivers the power of C in a language that strictly enforces type safety. Combine both languages and you can write f
A a thorough, practice-based introduction to WebAssembly. Learn how to create high-performing, lightning-fast websites and applications. WebAssembly is the fast, compact, portable technology that optimizes the performance of resource-intensive web applications and programs. The Art of WebAssembl