WebAssembly (WASM) is a binary instruction format that runs in web browsers at near-native speed. It allows code written in languages like C, C++, and Rust to execute in the browser alongside JavaScript.
WebAssembly in WebRTC
WebAssembly is used in WebRTC applications for performance-intensive media processing tasks that would be too slow in JavaScript:
- Background blur and virtual backgrounds – real-time video segmentation using ML models compiled to WASM
- Custom audio processing – noise suppression and audio enhancement models running in the browser via WASM
- Video effects – filters, face tracking, and AR overlays applied to frames from getUserMedia or Insertable Streams
- Custom codecs – running codec implementations in the browser when native support is unavailable, sometimes paired with WebCodecs for hardware acceleration
WebAssembly is also used server-side in WebRTC media servers for plugin-based media processing.
An interesting aspect of WebAssembly is its use by those who want to not use WebRTC but still enjoy real time media communications. By way of WebAssembly, they can get better performing code that gets close to the capabilities of WebRTC. Zoom, as well as some MOQ implementations take that route.


