Practical WebAssembly

Gain insights into WebAssembly, its compilation techniques, and VM infrastructure. Learn about converting native code, optimizing performance, and integrating Rust for efficient web processing.

Intermediate

68 Lessons

9h

Certificate of Completion

Gain insights into WebAssembly, its compilation techniques, and VM infrastructure. Learn about converting native code, optimizing performance, and integrating Rust for efficient web processing.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

89 Playgrounds
10 Quizzes

This course includes

89 Playgrounds
10 Quizzes

Course Overview

WebAssembly, also known as WASM, is a binary instruction format that provides multiple programming languages (C/C++, Ruby, Java, etc.) with a compilation target for smooth web processing. In this course, we’ll learn how to convert native code of different languages into WebAssembly and optimize it for better performance. This intermediate-level course provides basic information on compilation techniques and VM infrastructure. It discusses converting C/C++ code into WebAssembly and loading the binary in a N...Show More

What You'll Learn

Familiarity with creating WebAssembly binary with Emscripten

Ability to run Emscripten-generated WebAssembly binary with a Node.js server

Ability to convert WASM to WAST and other formats

Working knowledge of identifying, debugging, and writing efficient WebAssembly modules

An understanding of using Binaryen to convert WebAssembly into different formats

Ability to convert Rust into WebAssembly with different packages

What You'll Learn

Familiarity with creating WebAssembly binary with Emscripten

Show more

Course Content

1.

Introduction to the Course

Get familiar with the fundamentals of Rust and WebAssembly for high-performance web applications.
2.

Understanding LLVM

Discover the logic behind LLVM's role in optimizing and compiling code for WebAssembly.
3.

Understanding Emscripten

Master the steps to convert C/C++ code into WebAssembly using Emscripten tools and optimizations.
4.

Exploring WebAssembly Modules

Grasp the fundamentals of WebAssembly modules, their workings, and text format for optimization.
5.

Understanding the WebAssembly Binary Toolkit

Dig deeper into the WebAssembly Binary Toolkit's features for conversions and debugging.
6.

Understanding Sections in WebAssembly Modules

6 Lessons

Follow the process of understanding WebAssembly sections, from exports/imports to shared memory.
7.

Exploring Binaryen and Its Tools

6 Lessons

Master the tools to efficiently optimize and convert WebAssembly with Binaryen.
8.

Integrating Rust with WebAssembly

5 Lessons

Step through integrating Rust with WebAssembly, using tools like rustc, Cargo, and wasm-bindgen.
9.

Bundling WebAssembly Using wasm-pack

6 Lessons

Unpack the core of bundling WebAssembly with tools like wasm-pack, webpack, and Parcel.
10.

Crossing the Boundary between Rust and WebAssembly

8 Lessons

Master the steps to integrate Rust with JavaScript through WebAssembly for seamless functionality.

Create an E-Commerce Store in Rust

Project

11.

Optimizing Rust and WebAssembly

6 Lessons

Grasp the fundamentals of optimizing Rust and WebAssembly for enhanced performance and efficiency.
12.

Conclusion

1 Lesson

Solve problems in WebAssembly and Rust integration, performance, and optimization tools.
13.

Appendix

6 Lessons

Simplify complex WebAssembly tool installations, including Emscripten, WABT, Binaryen, Rust, wasm-bindgen, and more.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor