| OLD | NEW |
| 1 ######################## | 1 ######################## |
| 2 Welcome to Native Client | 2 Welcome to Native Client |
| 3 ######################## | 3 ######################## |
| 4 | 4 |
| 5 .. raw:: html | 5 .. raw:: html |
| 6 | 6 |
| 7 <div id="home"> | 7 <div id="home"> |
| 8 <div class="pull-quote">To get the SDK and<br/>installation instructions<br/> | 8 <div class="pull-quote">To get the SDK and<br/>installation instructions<br/> |
| 9 <a href="/native-client/sdk/download.html">visit the SDK Download page</a>. | 9 <a href="/native-client/sdk/download.html">visit the SDK Download page</a>. |
| 10 </div> | 10 </div> |
| 11 <div class="big-intro"> | 11 <div class="big-intro"> |
| 12 | 12 |
| 13 **Native Client** is a sandbox for running compiled C and C++ code in the | 13 **Native Client** is a sandbox for running compiled C and C++ code in the |
| 14 browser efficiently and securely, independent of the user's operating system. | 14 browser efficiently and securely, independent of the user's operating system. |
| 15 **Portable Native Client** extends that technology with | 15 **Portable Native Client** extends that technology with |
| 16 architecture independence, letting developers compile their code once to run | 16 architecture independence, letting developers compile their code once to run |
| 17 in any website and on any architecture. | 17 in any website and on any architecture. |
| 18 | 18 |
| 19 In short, Native Client brings the **performance** and **low-level control** | 19 In short, Native Client brings the **performance** and **low-level control** |
| 20 of native code to modern web browsers, without sacrificing the **security** and | 20 of native code to modern web browsers, without sacrificing the **security** and |
| 21 **portability** of the web. Watch the video below for an overview of | 21 **portability** of the web. Watch the video below for an overview of |
| 22 Native Client, including its goals, how it works, and how | 22 Native Client, including its goals, how it works, and how |
| 23 Portable Native Client lets developers run native compiled code on the web. | 23 Portable Native Client lets developers run native compiled code on the web. |
| 24 | 24 |
| 25 .. Note:: | 25 .. Note:: |
| 26 :class: note | 26 :class: note |
| 27 | 27 |
| 28 This site uses several examples of Native Client. For the best experience, | 28 This site uses several examples of Native Client. For the best experience, |
| 29 consider downloading the `latest version of Chrome <http://www.google.com/chro
me/>`_. | 29 consider downloading the `latest version of Chrome |
| 30 When you come back, be sure to `check out our demos | 30 <http://www.google.com/chrome/>`_. When you come back, be sure to `check out |
| 31 <https://gonativeclient.appspot.com/demo>`_. | 31 our demos <https://gonativeclient.appspot.com/demo>`_. |
| 32 | 32 |
| 33 .. raw:: html | 33 .. raw:: html |
| 34 | 34 |
| 35 </div> | 35 </div> |
| 36 | 36 |
| 37 <iframe class="video" width="600" height="337" | 37 <iframe class="video" width="600" height="337" |
| 38 src="//www.youtube.com/embed/MvKEomoiKBA?rel=0" frameborder="0"></iframe> | 38 src="//www.youtube.com/embed/MvKEomoiKBA?rel=0" frameborder="0"></iframe> |
| 39 <div class="big-intro"> | 39 <div class="big-intro"> |
| 40 | 40 |
| 41 Two Types of Modules | 41 Two Types of Modules |
| 42 ==================== | 42 ==================== |
| 43 | 43 |
| 44 Native Client comes in two flavors. | 44 Native Client comes in two flavors. |
| 45 | 45 |
| 46 * **Portable Native Client (PNaCl)**: Pronounced 'pinnacle', PNaCl runs single,
portable (**pexe**) executables and is available | 46 * **Portable Native Client (PNaCl)**: Pronounced 'pinnacle', PNaCl runs single, |
| 47 in most implementations of Chrome. A translator built into Chrome | 47 portable (**pexe**) executables and is available in most implementations of |
| 48 translates the pexe into native code for the client hardware. The entire | 48 Chrome. A translator built into Chrome translates the pexe into native code |
| 49 module is translated before any code is executed rather than as the code is | 49 for the client hardware. The entire module is translated before any code is |
| 50 executed. PNaCl modules can be hosted from any web server. | 50 executed rather than as the code is executed. PNaCl modules can be hosted from |
| 51 any web server. |
| 51 * **Native Client (NaCl)**: Also called traditional or non-portable Native | 52 * **Native Client (NaCl)**: Also called traditional or non-portable Native |
| 52 Client, NaCl runs | 53 Client, NaCl runs architecture-dependent (**nexe**) modules, which are |
| 53 architecture-dependent (**nexe**) modules, which are packaged into an | 54 packaged into an application. At runtime, the browser decides which nexe to |
| 54 application. At runtime, the browser decides which nexe to load based on the | 55 load based on the architecture of the client machine. NaCl modules must be run |
| 55 architecture of the client machine. NaCl modules must be run from the `Chrome | 56 from the `Chrome Web Store (CWS) |
| 56 Web Store (CWS) <https://chrome.google.com/webstore/category/apps>`_. | 57 <https://chrome.google.com/webstore/category/apps>`_. Fortunately, work from |
| 57 Fortunately, work from PNaCl modules can be used to create NaCl modules. | 58 PNaCl modules can be used to create NaCl modules. |
| 58 | 59 |
| 59 These flavors are described in more depth in `PNaCl and NaCl <nacl-and-pnacl>`_ | 60 These flavors are described in more depth in :doc:`PNaCl and NaCl |
| 61 <nacl-and-pnacl>` |
| 60 | 62 |
| 61 .. raw:: html | 63 .. raw:: html |
| 62 | 64 |
| 63 <div class="left-side"> | 65 <div class="left-side"> |
| 64 <div class="left-side-inner"> | 66 <div class="left-side-inner"> |
| 65 <h2>Hello World</h2> | 67 <h2>Hello World</h2> |
| 66 <div class="big-intro"> | 68 <div class="big-intro"> |
| 67 | 69 |
| 68 To jump right in `take the tutorial <devguide/tutorial/tutorial-part1>`_ that wa
lks you through a basic web | 70 To jump right in :doc:`take the tutorial <devguide/tutorial/tutorial-part1>` |
| 69 application for Portable Native Client (PNaCl). This is a client-side | 71 that walks you through a basic web application for Portable Native Client |
| 70 application that uses HTML, JavaScript, and a Native Client module written in C+
+. | 72 (PNaCl). This is a client-side application that uses HTML, JavaScript, and a |
| 73 Native Client module written in C++. |
| 71 | 74 |
| 72 .. raw:: html | 75 .. raw:: html |
| 73 | 76 |
| 74 </div> | 77 </div> |
| 75 </div> | 78 </div> |
| 76 </div> | 79 </div> |
| 77 <h2>A Little More Advanced</h2> | 80 <h2>A Little More Advanced</h2> |
| 78 <div class="big-intro"> | 81 <div class="big-intro"> |
| 79 | 82 |
| 80 If you've already got the basics down, you're probably trying to get a real appl
ication ready for production. You're `building </devguide/devcycle/building>`_,
`debugging </devguide/devcycle/debugging>`_ or `ready to distribute </devguide/d
istributing>`_. | 83 If you've already got the basics down, you're probably trying to get a real |
| 84 application ready for production. You're :doc:`building |
| 85 <devguide/devcycle/building>`, :doc:`debugging <devguide/devcycle/debugging>` |
| 86 or :doc:`ready to distribute <devguide/distributing>`. |
| 81 | 87 |
| 82 .. raw:: html | 88 .. raw:: html |
| 83 | 89 |
| 84 </div> | 90 </div> |
| 85 | 91 |
| 86 <div class="left-side"> | 92 <div class="left-side"> |
| 87 <div class="left-side-inner"> | 93 <div class="left-side-inner"> |
| 88 <h2>Nuts and Bolts</h2> | 94 <h2>Nuts and Bolts</h2> |
| 89 <div class="big-intro"> | 95 <div class="big-intro"> |
| 90 | 96 |
| 91 You've been working on a Native Client module for a while now and you've run int
o an arcane problem. You may need to refer to the `PNaCl Bitcode Reference </ref
erence/pnacl-bitcode-abi>`_ or the `Sandbox internals </sandbox_internals/index>
`_. | 97 You've been working on a Native Client module for a while now and you've run |
| 98 into an arcane problem. You may need to refer to the :doc:`PNaCl Bitcode |
| 99 Reference <reference/pnacl-bitcode-abi>` or the :doc:`Sandbox internals |
| 100 <reference/sandbox_internals/index>`. |
| 92 | 101 |
| 93 .. raw:: html | 102 .. raw:: html |
| 94 | 103 |
| 95 </div> | 104 </div> |
| 96 </div> | 105 </div> |
| 97 </div> | 106 </div> |
| 98 | 107 |
| 99 I Want to Know Everything | 108 I Want to Know Everything |
| 100 ========================= | 109 ========================= |
| 101 | 110 |
| 102 So, you like to read now and try later. Start with our `Technical Overview </ove
rview>`_ | 111 So, you like to read now and try later. Start with our :doc:`Technical Overview |
| 112 <overview>` |
| 103 | 113 |
| 104 .. raw:: html | 114 .. raw:: html |
| 105 | 115 |
| 106 <div class="big-intro" style="clear: both;"> | 116 <div class="big-intro" style="clear: both;"> |
| 107 | 117 |
| 108 Send us questions, comments, and feedback: | 118 Send us questions, comments, and feedback: `native-client-discuss |
| 109 `native-client-discuss <https://groups.google.com/forum/#!forum/native-client-di
scuss>`_. | 119 <https://groups.google.com/forum/#!forum/native-client-discuss>`_. |
| 110 | 120 |
| 111 .. raw:: html | 121 .. raw:: html |
| 112 | 122 |
| 113 </div> | 123 </div> |
| OLD | NEW |