World Congress 2026 Europe - Virtual Stage • Jul 2, 2026 • Session details

Speeding up Web Apps performance with WebAssembly and Emscripten

Paweł Aniszewski

WebAssembly isn't a magic speed button. Learn how to use Emscripten to port native libraries, manage memory boundaries, and truly optimize CPU-bound web workloads.

Pause
Mute Enter Fullscreen
#1 about 5 min

Introduction to WebAssembly and basic compilation with Clang

Exporting raw C snippets via Clang exposes a steep learning curve without automated memory assignments and a standard library.

#2 about 4 min

Using Emscripten to compile C code into WebAssembly

Emscripten bridges architectural gaps by emulating operating systems and providing standard allocation routines for seamless compilation.

#3 about 2 min

Bridging JavaScript and WebAssembly runtimes with Emscripten macros

Inlining JavaScript directly within C++ implementations resolves complex boundary interactions and enables direct runtime manipulation.

#4 about 2 min

Offloading WebAssembly execution to background web workers

Proxying intensive CPU calculations to separate web workers prevents main thread freezing and maintains fluid UI rendering.

#5 about 4 min

Evaluating WebAssembly use cases and SIMD performance benchmarking

Vectorized instructions executed through Emscripten configurations vastly outperform equivalent scalar operations performed natively within JavaScript engines.

#6 about 2 min

Understanding the performance tax of crossing runtime boundaries

Frequent lightweight calls across the WebAssembly partition introduce measurable latency that negates potential compilation optimizations.

#7 about 3 min

Porting the cryptographic Bitcoin core library to WebAssembly

Compiling existing robust cryptography libraries like libsecp into WebAssembly modules stabilizes heavy cryptographic validations securely.

#8 about 3 min

Guidelines for choosing between native WebAssembly and JavaScript

Relying upon native JavaScript remains optimal unless heavy processing throughput or established libraries explicitly require offloading.

#9 about 3 min

Managing memory allocation and handling application asset sizes

Navigating manual memory deallocation prevents significant crashes while isolating compiled modules within sandboxed linear boundaries.

#10 about 3 min

Cross-compiling end-to-end encrypted client libraries with WebCrypto

Integrating built-in web cryptography APIs alongside WebAssembly modules restricts unnecessary bundle sizing when sharing code environments.

#11 about 4 min

Designing reliable JavaScript wrappers around WebAssembly lifecycle objects

Abstracting lifetime initializations into clean TypeScript singletons removes manual pointer tracking complexities for widespread downstream adoption.

#12 about 2 min

Optimizing bundle sizing using customized Emscripten compilation flags

Configuring build modifiers to target browser environments exclusively reduces unneeded Node glue code and overhead latency.

#13 about 2 min

Summary of utilizing Emscripten for targeted code offloading

Treating WebAssembly entirely as an environment for porting CPU-bound logic prevents unnecessary maintenance and disjointed integrations.

Matching moments

3:06 min

Optimizing memory management and data processing with WebAssembly

Andrew Burnett-Thompson +1 · Coffee With Developers

2:41 min

Accelerating WebAssembly to JavaScript data reads

Andrew Burnett-Thompson +1 · Coffee With Developers

3:33 min

Evaluating performance differences between WebAssembly and JavaScript

Rainer Stropek Rainer Stropek · LIVE

2:20 min

Understanding hardware performance advantages of WebAssembly code

Chris Heilmann Chris Heilmann +3 · LIVE

4:02 min

Compilers and runtimes in the WebAssembly ecosystem

Edoardo Dusi · LIVE

4:54 min

The origins and design principles of WebAssembly

Maurice Brinkmann · World Congress 2023

Upcoming sessions on this topic

Open session

Build a Zero-Cost AI Agent in Your Browser

  • Aishwarya Mathuria

    Adobe

    Computer Scientist

  • Nishant Thakur

    Adobe

    Senior Computer Scientist

Open session

From Profiler to Production: Measuring What Actually Matters in React & React Native

  • Andrei Tazetdinov

    Dynatrace

    React Native Developer

Open session

Supply Chain Security for the Everyday Engineer

  • Pradumna Saraf

    Kestra Technologies

    Quality Assurance Engineer

Open session

React Under Fire: Rendering Performance for Streaming Agent UIs

  • Abhirupa Mitra

    Slack

    Senior Member of Technical Staff

Open session

How is SWE & EM roles are changing in the age of AI

  • Amol Sharma

    Stripe

    Engineering Manager

Open session

Beyond File Dumps: Context Engineering for Coding Agents

  • Animesh Dutta

    Arm

    Senior Software Engineer