Chrome To Deprecate ‘PNaCl,’ Embrace New ‘WebAssembly’ Standard

Google announced that its Portable Native Client (PNaCl) solution for making native code run inside the browser will be replaced by the new cross-browser web standard called WebAssembly.

NaCl And PNaCl

Around the same time Google introduced Chrome OS in 2011, it also announced Native Client (NaCl), a sandboxing technology that runs native code inside the browser. This was initially supposed to make Chrome OS a little more useful offline compared to only running web apps that required an internet connection.

Two years later, Google also announced PNaCl, which was a more portable version of NaCl that could work on ARM, MIPS, and x86 devices. NaCl, on the other hand, only worked on x86 chips.

Even though Google open sourced PNaCl, as part of the Chromium project, Mozilla ended up creating its own alternative called “asm.js,” an optimized subset of JavaScript that could also compile to the assembly language. Mozilla thought that asm.js was far simpler to implement and required no API compatibility, as PNaCl did.

As these projects seemed to go nowhere, with everyone promoting their own standard, the major browser vendors seem to have eventually decided on creating WebAssembly.

WebAssembly

WebAssembly can give web apps near-native performance, offers support for more CPU features, and is simpler to implement in browsers and use by developers. Chrome 57 and Firefox 52 already support WebAssembly, and Microsoft’s Edge and Apple’s Safari support it in the preview versions of their browsers.

Google said that going forward, its native code efforts will focus on using WebAssembly. Meanwhile, PNaCl will be deprecated by the end of the first quarter of 2018. Chrome apps and extensions will continue to support it for a while longer. However, Chrome previously announced the deprecation of Chrome apps, too.

Google published a list of recommendations for developers who want to port their apps from PNaCl to WebAssembly, as well as a roadmap for WebAssembly features that will be supported in future versions of Chrome.

Lucian Armasu
Lucian Armasu is a Contributing Writer for Tom's Hardware US. He covers software news and the issues surrounding privacy and security.
  • spdragoo
    Was I the only one that was thinking at first this might somehow be chemistry related (since NaCl = Sodium Chloride = Table salt)?
    Reply
  • 19757786 said:
    Was I the only one that was thinking at first this might somehow be chemistry related (since NaCl = Sodium Chloride = Table salt)?

    It was so you can add flavor to your website.

    Another technology that if learned is now completely useless. The older I get the more disgusted I get with all the wasted energy.
    Reply
  • ammaross
    19757786 said:
    Was I the only one that was thinking at first this might somehow be chemistry related (since NaCl = Sodium Chloride = Table salt)?

    You're not wrong. They have fun with chemistry. Even the "chromium" project in itself. :P

    "NaCl denotes sodium chloride, common table salt; as a pun, the name of pepper was also used. Pepper API is a cross-platform, open-source API for creating Native Client modules."
    Reply
  • InvalidError
    I wonder how many companies are going to be salty about having to re-design their websites, plugins, browser-based apps, etc. yet again for portability and support beyond early 2018.
    Reply
  • ammaross
    19757979 said:
    I wonder how many companies are going to be salty about having to re-design their websites, plugins, browser-based apps, etc. yet again for portability and support beyond early 2018.

    About as many as bothered updating their Java-based code to run on something newer than Java 1.7. Actually, a lot less since NaCl wasn't widely used.
    Reply
  • spdragoo
    19757979 said:
    I wonder how many companies are going to be salty about having to re-design their websites, plugins, browser-based apps, etc. yet again for portability and support beyond early 2018.

    Maybe they can claim they're "healthier" since they're "lower sodium", LOL
    Reply