Getting started with WebAssembly & Emscripten
More
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.
Requirements:
Must understand JavaScript in the Browser environment
Be capable of basic Command Line (Terminal) usage
Some experience with C or C++ beneficial, but not required.
- Web Developers wanting to learn WebAssembly from scratch
- C, C++ or other compiled language developers looking to expand their software reach by developing for the web
- JavaScript Developers of all levels.
What you'll learn:
- Understand what WebAssembly is and how it will impact Web Development
- Learn to load and run WebAssembly modules, using native JavaScript browser APIs
- Compile C and C++ code using Emscripten
- Advanced Emscripten features such as calling JS from WA and vice-versa
Watch Online Getting started with WebAssembly & Emscripten
# | Title | Duration |
---|---|---|
1 | Introduction | 02:00 |
2 | Prerequisites & Lesson Structure | 06:09 |
3 | Loading a WASM | 06:40 |
4 | Exports: Calling C from JavaScript | 04:48 |
5 | Imports: Calling JavaScript from C | 07:30 |
6 | Memory Access: Reading Strings | 08:21 |
7 | Custom Memory Imports | 06:01 |
8 | What is Emscripten? | 02:36 |
9 | Installing Emscripten Tools | 12:00 |
10 | Compiling your first WASM | 06:57 |
11 | Compilation Options | 06:07 |
12 | Exporting C functions to JavaScript | 09:05 |
13 | Calling JavaScript functions from C | 09:27 |
14 | Preamble Conversion Functions | 05:06 |
15 | Emscripten Module & Memory Buffer | 02:57 |
16 | Debugging | 03:27 |
17 | Runtime Initialisation | 02:55 |
18 | Emrun | 02:14 |
19 | Micro Benchmark: Prime Numbers | 10:28 |
20 | Canvas Project 1: Setup | 09:24 |
21 | Canvas Project 2: Data Structure | 13:11 |
22 | Canvas Project 3: Animation | 10:39 |
23 | Bonus Lecture: Feedback & Stackacademy.tv Courses | 00:51 |