
Course introduction
What you will learn
Course structure
About instructor
Preparation for course material
An overview of WebAssembly and it's purpose
Prerequisites for following along
Lesson setup including editor, server and CLI tools
Learn to instantiate and run (load) a WebAssembly module, using native JavaScript
Learn to export and execute functions from a WebAssembly Module
Learn to import and execute functions from JavaScript, in a WebAssembly Module
Read data (type char) directly from a WASM's exported Memory object.
A brief overview of what Emscripten is, and how it simplifies WebAssembly.
A walkthrough lessons for installing the Emscripten toolset on both Mac, Windows & Linux.
Use Emscripten to compile a C script to a WebAssembly Module.
Learn to use the various emcc compilation options for optimising compiled Emscripten code.
Emscripten Exports:
Default exports
Specified function exports
Exported function execution in JavaScript
Learn to use the Emscripten C library to execute JavaScript from a WebAssembly Module
Pointer to string conversions, using Preamble.js.
An overview of the Emscripten Module object and how to access an Emscripten Memory Buffer.
Learn to debug an Emscripten WASM, using <emscripten.h> helper functions.
Understand how to wait for an Emscripten Module to be initialised.
A quick overview of Emscripten's built-in development server.
A simple Benchmark project, demonstrating the performance differences in JavaScript and WebAssembly.
WASM Canvas Project - Part 1:
Overview of project
Basic setup of project
Canvas element
Render loop
WASM Canvas Project - Part 2:
Create data structures in a WASM
Generate random data to render on a Canvas
Use WASM data as a JavaScript Typed Array
WASM Canvas Project - Part 3:
Animate WASM data
Run a render loop with WASM animation data
An outro consisting of:
Expected course updates & additions
Course Feedback & Suggestions
Links to more Stackacademy.tv Courses
*** UPDATED FOR EMSCRIPTEN v2.0 ***
Learn to create and use WebAssembly Modules from scratch using Emscripten.
Bring your skills up to date with the very latest technology in Web Development.
This course is suitable for both beginners and experienced developers looking to get started with WebAssembly.
Understand what WebAssembly is and how it speeds up the web
Use native JavaScript APIs to load and run WebAssembly modules
Learn to use Emscripten and compile your own C or C++ code as a WebAssembly module
Use WebAssembly in a real-world project and micro benchmark
An invaluable skill for any developer looking to future-proof their skills
WebAssembly is the most promising new technology for the web, allowing browsers, and other JavaScript environments, to run blazing-fast raw binary modules, compiled directly from C, C++ and many other languages.
Understanding WebAssembly is an invaluable skill for anyone working with JavaScript or compiled languages, allowing you to bridge the gap between native software development and web-based JavaScript.
This course will provide a very practical and concise approach to learning WebAssembly & Emscripten, and will give you a solid base to immediately start creating and implementing fast, optimised WebAssembly modules.
Content and Overview
This course aims to teach a solid foundational understanding of what WebAssembly is, and why it's so powerful.
Section one starts with an overview of WebAssembly and a detailed setup lesson to help you follow along every step of the way.
Section two covers the native JavaScript browser API for loading and running WebAssembly modules. This section also includes importing and exporting functions to and from a WebAssembly module, and shows how to access WebAssembly memory.
The third and most substantial part of the course, covers Emscripten in-depth. Teaching everything from installing Emscripten on either Mac, Windows or Linux, compiling C code from scratch and the general Module runtime cycle.
This Emscripten section also teaches some more advanced features of Emscripten, including calling JavaScript from a WebAssembly module and vice-versa.
The final section of the course is a practical 4-part lesson, teaching how to implement a fully animated HTML5 Canvas project using WebAssembly as the main processor.
Upon completion of this course you will have the practical skills to immediately start creating high performance WebAssembly modules.
This course is to the point and everything is demonstrated in the most simple, yet practical ways.