Following its excellent Q4 earnings report, Google on Tuesday announced that it has updated its Native Client SDK with support for ARM devices as of Chrome version 25 and up. While Chrome 24 was just released, Chrome 25 will be out next month and developers will want to update their apps.
The instructions to do so are very straightforward (download details):
If your app uses Native Client and newlib, you’ll now be able to reach users on ARM devices by simply adding an ARM .nexe to your app and making a small adjustment to the Native Client manifest. Just get the newest SDK, and you’ll have all the tools you need.
For those who don’t know, Native Client (NaCl) is a sandboxing technology for safely executing a subset of Intel x86 or ARM native code using software-based fault isolation. Google offers it to developers who are looking to write high-performance apps that run C and C++ code in the browser, allowing them to run at near-native speeds. NaCl is Google’s way of securing browser plugins and other applications, but it’s also an important piece in the company’s broader Chrome OS vision of one day having everything run in the browser.
Google says one of the main goals of Native Client is to be architecture-independent, so that all machines can run NaCl content. In fact, the company today revealed that ARM support is but a stepping stone in the bigger plan.
In 2013, Google says it will release “the next generation of Native Client” called Portable Native Client (PDF). PNaCl will introduce “true architecture-independence” by using LLVM bitcode as the wire format. Here’s an excerpt from Google’s description:
The PNaCl design allows some flexibility in deciding where translation to native machine code occurs. By supporting client-side translation to the client’s native instruction set, PNaCl reduces the burden on the developer, enabling support of new instruction sets without recompilation from the source. As PNaCl is layered cleanly on top of current ISA-specific NaCl implementations, the small trusted code base, source language neutrality, and safety properties of the system are preserved.
Do you want that translated into English? PNaCl will let Google support current and future architectures without forcing developers to recompile their app. If you use or build apps in the browser, that’s a very big deal.
Image credit: Villedieu Christophe