Native Client: Getting Ready for Takeoff

Friday, February 18, 2011

Labels:

Over the last few months we have been hard at work getting Native Client ready to support the new Pepper plug-in interface. Native Client is an open source technology that allows you to build web applications that seamlessly and safely execute native compiled code inside the browser. Today, we’ve reached an important milestone in our efforts to make Native Client modules as portable and secure as JavaScript, by making available a first release of the revamped Native Client SDK.

The SDK now includes support for a comprehensive set of Pepper interfaces for compute, audio, and 2D Native Client modules. These interfaces are close to being stable, with some important exceptions that are listed in the release notes.

In addition, we’ve focused on improving security. We have enabled auto-update and an outer sandbox. This allowed us to remove the expiration date and localhost security restrictions we had adopted in previous research-focused releases. Beyond security, we’ve also improved the mechanism for fetching Native Client modules based on the instruction set architecture of the target machine, so developers don’t need to worry about this any more.

We are excited to see Native Client progressively evolve into a developer-ready technology. In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more. We’ll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability.

Until the ABI becomes stable, Native Client will remain off by default. However, given the progress we’ve made, you can now sticky-enable Native Client in Chrome 10+ through the about:flags dialog. Otherwise, you can continue using a command line flag to enable Native Client when you want to.

A big goal of this release is to enable developers to start building Native Client modules for Chrome applications. Please watch this blog for updates and use our discussion group for questions, feedback, and to engage with the Native Client community.

17 comments:

Doug said...

Woo Hooooo!!!!!!!!! Java Applet 2.0 is here!!! Only better

cyberix said...

See this bug, if you have problems turning the Native Client feature on http://code.google.com/p/chromium/issues/detail?id=62807

Tamim said...

Isn't it only a plugin/extension API? That means, if I build my application with it, I have to install the app as an extension, my app will not load every time like javascript, right?

petegrif said...

Congratulations to everyone on the team. It is an extremely demanding project and I can't even imagine how much work you guys have put into it. I think you are on the verge of something really important that will take browser based apps to a new level.

:)))

www. GarthGallery .com said...

Can anyone tell me if this will work with my CR48?

Edward Gerhold said...

Wow, this is cool, i have already read the technical overview, the tutorial, compiling, the pepper api, the other pages and of course the examples. I already have an idea, how it works :) I waited for a chance to write in C++ again, here is one and i will use it. But before i start, i will have to get chrome 10. Version 9 is what i have got. Before i leave a comment, to say "yeah", i would like to thank the authors for the hard work and the experienced C and C++ codes, you give with the projects. I like that very much! Thank you!!! Hope that the people will support the NaCl soon, to make this invention successful. It seems to be so useful. Can´t wait for the evening, when i leave home for some hours now ;-)) It´s so fat and difficult, that i can say, i won´t be finished tomorrow, hehe. Of course not. Very well done!!! Thank you again for the native client sdk and pepper api! That could be so powerful!

dhruv said...

Can you guarantee that this is here for keeps and won't have its plug pulled like wave?

said...

Add Go support pleeeeeeeeeeeeeeeeeeeeeeeeeazzzzz

sad-wind said...

Google has just invented ActiveX. Hoorah for them.

Edward Gerhold said...

"INFO: Native Client enabled in Google Chrome version 11.", is from the example pages. I noticed, i could have used --enable-nacl --internal-nacl --enable-gpu-plugin for version 9 anyways. I am sorry to say, the examples don´t run today. But i am not getting tired by working through the plugin system. No. Said i won´t be through tomorrow. Great work, great docs, cool interfaces, cool project_template tool, great. Gonna write and compile soon. Will get it working. Again thanks, i have much fun with.

ssokolow said...

I'm not really in favor of anything that encourages more closed-source code running in the browser, but I'll applaud because I see applications for NaCl's technology in sandboxing code elsewhere.

Ryan said...

This is the most exciting and under-appreciated project in all of Google.

kikke said...

At the official page:

http://code.google.com/intl/hu/chrome/chromeframe/

link to Getting Started Guide is broken:

http://code.google.com/chrome/chromeframe/developers_guide.html

redirects to missing

http://www.chromium.org/intl/hu/developers/how-tos/chrome-frame-getting-started

George said...

Native Client is a huge step forward towards Native Applications over the internet, good job.

mitchymitch said...

Nobody wants a new browser plugin. HTML5!!

teabagsum said...

win win. whether you like chrome, chrome os etc. (i don't) this thing is quite awesome. hats off

michelangelo giacomelli said...

it is better to incorporate features such as OpenGL ES in the browser
and make it accessible via javascript . these native extensions... it reminds me so much activeX.