Practical WebAssembly-Explore the fundamentals of WebAssembly programming using Rust
- Length: 226 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2022-06-09
- ISBN-10: 1838828001
- ISBN-13: 9781838828004
- Sales Rank: #0 (See Top 100 Books)
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.
Practical WebAssembly Contributors About the author About the reviewer Preface Who this book is for What this book covers To get the most out of this book Download the example code files Conventions used Get in touch Share Your Thoughts 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 Why subscribe? Other Books You May Enjoy Packt is searching for authors like you Share Your Thoughts
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: Practical WebAssembly-Explore the fundamentals of WebAssembly programming using Rust
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.