Skip to main content
CF

Getting started with WebAssembly & Emscripten

2h 28m 53s
English
Paid
A complete guide for learning the WebAssembly JavaScript API and Emscripten toolset. 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.

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.

Who this course is for:
  • 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

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 23 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 23 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction
All Course Lessons (23)
#Lesson TitleDurationAccess
1
Introduction Demo
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
Unlock unlimited learning

Get instant access to all 22 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites should I have before taking this course?
Before enrolling in this course, you should have a basic understanding of JavaScript and C programming languages. Familiarity with web development concepts will be helpful, as the course involves working with the WebAssembly JavaScript API and compiling C code into WebAssembly using Emscripten.
What projects will I work on during the course?
The course includes a practical project where you will develop a canvas-based animation. This project is divided into several lessons, including setup, data structure, and animation, allowing you to apply the skills learned in creating and using WebAssembly modules.
Who is the target audience for this course?
This course is designed for web developers and programmers who want to learn how to integrate C/C++ code with JavaScript for web applications. It is suitable for those looking to expand their technology stack with WebAssembly and Emscripten.
How does this course compare in depth and scope to other WebAssembly courses?
This course provides a detailed guide to using the WebAssembly JavaScript API and the Emscripten toolset. Unlike some introductory courses, it covers both the high-level concepts and the practical steps for compiling and using WebAssembly modules, including memory access and function imports/exports.
What specific tools or platforms will I learn to use in this course?
You will learn to use the Emscripten toolset, which includes building and compiling C code into WebAssembly. The course also covers using Emrun for running WebAssembly modules and debugging techniques specific to WebAssembly applications.
What topics are not covered in this course?
The course does not cover advanced usage of WebAssembly beyond the basics of using the JavaScript API and Emscripten. Topics such as integrating WebAssembly with other languages or frameworks, or in-depth performance optimization techniques, are not included.
What is the time commitment required for this course?
The course consists of 23 lessons, and while the exact runtime is not specified, students should allocate sufficient time to go through each lesson and complete the exercises, especially the canvas animation project, to fully grasp the material.