Helion


Szczegóły ebooka

Practical WebAssembly

Practical WebAssembly


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.

  • 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

  • Tytuły: Practical WebAssembly
  • Autor: Sendil Kumar Nellaiyapen
  • Tytuł oryginału: Practical WebAssembly
  • ISBN Ebooka: 9781838827465, 9781838827465
  • Data wydania: 2022-05-02
  • Identyfikator pozycji: e_2t7c
  • Kategorie:
  • Wydawca: Packt Publishing