BT

Your opinion matters! Please fill in the InfoQ Survey!

WebAssembly Now Supported across All Browsers

| by Kevin Ball Follow 0 Followers on Dec 01, 2017. Estimated reading time: 2 minutes |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

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 Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Very cool! by Cameron Purdy

I've been looking forward to this! It will be nice to be able to target browsers with a compiler back-end, without having to sacrifice much performance, and without having to sacrifice security/safety.

Peace,

Cameron.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT