Almost three years after its announcement, Native Client is almost ready for prime time. It’s enabled in Chrome 14, which is now in beta and will reach the stable channel in less than a month.
Native Client is a very complex framework that allows browsers to run native compiled code in a sandbox. Google’s goal is to “maintain the OS portability and safety that people expect from web apps”, while allowing developers to use their preferred language. Right now, the only supported languages are C and C++ and Native Client only works in Chrome for Windows, Mac and Linux.
“Native Client apps live on the web platform, so you don’t need to create separate versions of your app for each operating system. Rather than relying on OS-specific APIs, Native Client apps use Pepper, a set of interfaces that provide C and C++ bindings to the capabilities of HTML5. This means that once you’ve ported your code to Native Client, it will work across different operating systems, and you only need to maintain one code base. Today Native Client supports the Pepper APIs for 2D graphics, stereo audio, URL fetching, sandboxed local file access (File API), and asynchronous message passing to and from JavaScript. In future releases we will be adding support for hardware accelerated 3D graphics (OpenGL ES 2.0), fullscreen mode, networking (WebSockets and peer-to-peer connections), and much more,” informs Google.
Google announced that developers will be able to upload their native apps to the Chrome Web Store once Chrome 14 hits the stable channel. In the meantime, Chrome 14 users can try the examples from this gallery: a pi generator, a sine wave synthesizer and John Conway’s Game of Life.
NaCl (Native Client) + Pepper -> a lot of games, business apps, educational apps, image editors and virtual machine software running inside your browser. Suddenly, Chromebooks are no longer that limited.