BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News WebAssembly Now Supported across All Browsers

WebAssembly Now Supported across All Browsers

Leia em Português

This item in japanese

Lire ce contenu en français

With releases on September 19 for Safari and October 31 for Edge, Apple and Microsoft join Google and Mozilla in providing support for WebAssembly in production browsers. All four browsers can now run code compiled to the wasm binary format.

The first version of WebAssembly is supported in Safari as of version 11 and Edge version 16. Firefox was the first major browser to release WebAssembly support with version 52 released March 7, 2017, with Chrome quickly following with WebAssembly support in version 57, released in March 9, 2017. Using additional key advances in tooling, developers can now ship code using the wasm binary format and expect it to work for a large majority of end users.

WebAssembly has come a long way since the major browser vendors first reached consensus on the specification for version 1 on March 31, 2017. Not only are there now implementations across all browsers, but the compilation toolchain has begun to mature and there are efforts to integrate WebAssembly into more standard web development tools like webpack.

The recommended toolchain from webassembly.org for compiling to WebAssembly is Emscripten. There is a quick-start developer’s guide available, as well as more in-depth documentation on MDN. This toolchain can currently compile C, C++, or Rust by first compiling down to LLVM bytecode, translating that into asm.js, and from there using an asm2wasm compilation tool built using the WebAssembly binary toolkit. Support for a pure LLVM compilation via a wasm backend is in progress and beginning to mature, with Rust being the first language to adopt its use in a pull request merged on Nov 20.

There is also rapid progress in more traditional web development tooling. Webpack received a grant from Mozilla to make WebAssembly a first-class module type within webpack. The webpack team believes this can drive WebAssembly adoption by making it far easier to integrate into real production environments. Sean Larkin of the webpack core team said:

WebAssembly cannot progress, thrive, or evolve, unless developers, businesses, and companies can adopt it seamlessly into their production environments. We felt that webpack could be that vessel to help make it more accessible and ignite widespread adoption.

With these improvements in toolchains and support, the industry is rapidly incorporating web assembly into a variety of domains. A recent announcement by Mozilla celebrating widespread wasm support highlighted projects across domains ranging from computer vision to language detection and everything in between. Mozilla engineer Luke Wagner said:

Now we’re seeing people using WebAssembly for all kinds of new projects. So there’s this real promise that we will someday be able to run most any application on the web and have it perform just as it would if it were running locally on your PC.

Rate this Article

Adoption
Style

BT