Historically, running native code on the web required a browser plugin. In 2013, we introduced the PNaCl sandbox
to provide a means of building safe, portable, high-performance apps without plugins. Although this worked well in Chrome, it did not provide a solution that worked seamlessly across all browsers.
Since then the web community has rallied around WebAssembly, as a cross-browser solution to high performance code. WebAssembly provides the speed necessary to build an in-browser video editor
or run a Unity game
at a high frame rate utilizing existing standards-based web platform APIs. Applications using WebAssembly already run in multiple browsers: Chrome and Firefox support WebAssembly natively and Edge and Safari support WebAssembly in preview versions of their browsers.
Given the momentum of cross-browser support, we plan to focus our native code efforts on WebAssembly going forward. We will remove support for PNaCl in the first quarter of 2018 everywhere except inside Chrome Apps and Extensions. We believe that the ecosystem around WebAssembly makes it a better fit for new and existing high-performance web apps, and that usage of PNaCl is sufficiently low to warrant deprecation.
We recognize that technology migrations can be challenging. To help ease the transition we have prepared a set of recommendations
for existing PNaCl implementations to migrate to the web platform, as well as a feature roadmap
for WebAssembly. As you embark on the migration process, please let us know
if you run into any challenges, so that we can help make the shift as smooth as possible.
With the launch of WebAssembly, the web platform has gained a foundation for a new generation of fast and immersive web apps that run in any browser. We’re excited to see what developers build next!
Brad Nelson, Software Engineer on NaCl, PNaCl, and WebAssembly