Portable Native Client

Let’s assume that we have bunch of standalone applications which have been developed in C/C++ languages and we currently want to have all of them as portable web applications, means that they could run on various platforms and various architecture such as X86, ARM, etc.
It seems that the scenario is too complicated and it is not that much easy to solve. The most naïve and also worst solution could be rewriting the applications for instance with PHP, Java script or other web technologies. But other way is also possible and it is applying some changes on the applications and makes them executable on Google Chrome with “Portable Native Client”. In fact Portable Native Client is (PNaCI) is a SDK which allows you to compile your C/C++ code once and run it on any hardware in any website. More information on this link (Official page of Native Client).

Here is also a video from the official page of Native Client (Copied from the official page).

The mechanism of Native Client is not complicated. It compiles your C/C++ code to an intermediate code (such as Java bytecode) and then the intermediate code is fetched and translated the code into architecture specific machine code by Google Chrome.
This feature currently is only available on Google Chrome 30+ version and I personally hope that it is available for other browsers such as Firefox.
The SDK is available for Linux, Windows, and Mac OS X to download. Keep in your mind that Python is prerequisite of this SDK. For downloading the SDK and installation procedure check this (Official webpage of Native Client) link.

Finally, you can find very useful tutorials here (Official page of Native Client).

For more information please refer to following links,
Chromium blog about Native Client
http://blog.chromium.org/2013/11/portable-native-client-pinnacle-of.html

Introduction to Portable Native Client
http://www.chromium.org/nativeclient/pnacl/introduction-to-portable-native-client

Wikipedia Google Native Client
http://en.wikipedia.org/wiki/Google_Native_Client

send your idea and information to kasra.madadipouya@geeksweb.eu.org

Leave a Reply