WebAssembly in the future and when you want to know what is going on, you should read this book.
— Jeff Atwood, Cofounder of StackOverflow
Part 1: First Steps
1 Meet WebAssembly
1.1 What is WebAssembly?
1.2 What problems does it solve?
1.2.1 Performance improvements
1.2.4 Opportunity for code reuse
1.3 How does it work?
1.3.1 Overview of how compilers work
1.3.2 Loading, compiling, and instantiating a module
1.3.3 Structure of a WebAssembly module
1.3.4 WebAssembly Text Format
1.4 How is WebAssembly secure?
1.5 What languages can I use to create a WebAssembly module?
1.6 Where can I use my module?
2 Creating your first WebAssembly Module
2.1 The Emscripten toolkit
2.2 WebAssembly modules
2.3 Compiling C or C++ with Emscripten and using the HTML template
2.4.2 Creating a basic HTML webpage for use in browsers
2.5 Only the WebAssembly file
2.5.1 Compiling C or C++ as a side module with Emscripten
2.5.2 Loading and instantiating in a browser
2.6 Feature detection: How to test if WebAssembly is available
Part 2: Working with Modules
3.1 Using C or C++ to create a module with Emscripten plumbing
3.1.1 Making the C++ modifications
3.1.2 Compiling the code into a WebAssembly module
3.1.3 Creating the webpage
3.1.5 Viewing the results
3.2 Using C or C++ to create a module without Emscripten
3.2.1 Making the C++ modifications
3.2.2 Compiling the code into a WebAssembly module
3.2.4 Viewing the results
4.1 Using C or C++ to create a module with Emscripten plumbing
4.1.1 Adjusting the C++ code
4.1.3 Compiling the code into a WebAssembly module
4.1.5 Viewing the results
4.2 Using C or C++ to create a module without Emscripten plumbing
4.2.1 Making the C++ modifications
4.2.2 Compiling the code into a WebAssembly module
4.2.4 Viewing the results
5.1 Using C or C++ to create a module with Emscripten plumbing
5.1.2 Adjusting the C++ code
5.1.3 Compiling the code into a WebAssembly module
5.1.5 Viewing the results
5.2 Using C or C++ to create a module without Emscripten plumbing
5.2.2 Making the C++ modifications
5.2.3 Compiling the code into a WebAssembly module
5.2.5 Viewing the results
Part 3: Advanced Topics
6 Allowing multiple WebAssembly modules to talk to each other
7 Running code in a separate thread from the UI in a browser
8 Working with WebAssembly modules in NodeJS
Part 4: Debugging and Tools
9 The WebAssembly Text Format
12 Future WebAssembly improvements that are in the works
Appendix A: WebAssembly Known sections
A.1 Known sections
Appendix B: Installation & tool setup
B.1.1 Running a local web server
B.1.2 The WebAssembly Media Type
B.2.1 If you are using Windows
B.2.2 If you are using a Mac or Linux
B.2.3 Working around installation issues
B.4 WebAssembly Binary Toolkit
Appendix C: ccall, cwrap, and direct method calls
C.1.1 Building a simple WebAssembly module
C.1.2 Building the webpage that will talk to the WebAssembly module
C.3 Direct method calls
C.4 Passing an array to a module
Appendix D: Emscripten Macros
D.1 emscripten_run_script macros
D.2.1 No parameter values
D.2.2 Passing parameter values
D.2.3 Passing pointers as parameters
D.2.4 Returning a string pointer
D.3.3 Passing pointers as parameters
D.3.4 EM_ASM_INT and EM_ASM_DOUBLE
D.3.5 Returning a string pointer
About the TechnologyWebAssembly compiles code written in C, C++, Rust, and other high-level languages into an ultra-compact bytecode files that run in the browser and other environments at near-native speeds. Besides vastly improved performance, opportunities to reuse existing code, and the freedom to build in your favorite language, this game-changer allows access to newer and faster libraries. WebAssembly is the joint effort of industry leaders like Microsoft, Mozilla, Google, and others, with support built into all major browsers.
About the book
- The WebAssembly format
- Dynamic linking of multiple modules at runtime
- Debugging modules
- Unreleased features like host bindings and garbage collection!
placing your order...Don't refresh or navigate away from the page.
A great comprehensive introduction to a new frontend technology.
With the well-organized content, the author has made sure that everyone from beginner to very experienced developers will have something to learn.