.. raw:: html
<div id="home">
- <a class="button-nacl button-download" href="/native-client/sdk/download.html">Download SDK</a>
+ <div class="pull-quote">To get the SDK and<br/>installation instructions<br/>
+ <a href="/native-client/sdk/download.html">visit the SDK Download page</a>.
+ </div>
<div class="big-intro">
**Native Client** is a sandbox for running compiled C and C++ code in the
browser efficiently and securely, independent of the user's operating system.
**Portable Native Client** extends that technology with
architecture independence, letting developers compile their code once to run
-in any website and on any architecture.
+in any website and on any architecture with ahead-of-time (AOT) translation.
In short, Native Client brings the **performance** and **low-level control**
of native code to modern web browsers, without sacrificing the **security** and
**portability** of the web. Watch the video below for an overview of
Native Client, including its goals, how it works, and how
-Portable Native Client lets developers run native compiled code on the web.
+Portable Native Client lets developers run native compiled code on the web.
+
+.. Note::
+ :class: note
+
+ This site uses several examples of Native Client. For the best experience,
+ consider downloading the `latest version of Chrome
+ <http://www.google.com/chrome/>`_. When you come back, be sure to `check out
+ our demos <https://gonativeclient.appspot.com/demo>`_.
.. raw:: html
</div>
- <iframe class="video" width="640" height="360"
+ <iframe class="video" width="600" height="337"
src="//www.youtube.com/embed/MvKEomoiKBA?rel=0" frameborder="0"></iframe>
+ <div class="big-intro">
+
+Two Types of Modules
+====================
+
+Native Client comes in two flavors.
+
+* **Portable Native Client (PNaCl)**: Pronounced 'pinnacle', PNaCl runs single,
+ portable (**pexe**) executables and is available in most implementations of
+ Chrome. A translator built into Chrome translates the pexe into native code
+ for the client hardware. The entire module is translated before any code is
+ executed rather than as the code is executed. PNaCl modules can be hosted from
+ any web server.
+* **Native Client (NaCl)**: Also called traditional or non-portable Native
+ Client, NaCl runs architecture-dependent (**nexe**) modules, which are
+ packaged into an application. At runtime, the browser decides which nexe to
+ load based on the architecture of the client machine. NaCl modules must be run
+ from the `Chrome Web Store (CWS)
+ <https://chrome.google.com/webstore/category/apps>`_. Fortunately, work from
+ PNaCl modules can be used to create NaCl modules.
+
+These flavors are described in more depth in :doc:`PNaCl and NaCl
+<nacl-and-pnacl>`
+
+.. raw:: html
- <div class="right-side">
- <div class="right-side-inner">
- <h2>Guiding principles of Native Client</h2>
+ <div class="left-side">
+ <div class="left-side-inner">
+ <h2>Hello World</h2>
<div class="big-intro">
- <ul>
- <li>Developer flexibility to program in any language.</li>
- <li>Running close to the metal to allow access to performance gains.</li>
- <li>Protecting users from malicious code and malware.</li>
- <li>Write-once, run-anywhere code portability across all user architectures.</li>
- </ul>
+
+To jump right in :doc:`take the tutorial <devguide/tutorial/tutorial-part1>`
+that walks you through a basic web application for Portable Native Client
+(PNaCl). This is a client-side application that uses HTML, JavaScript, and a
+Native Client module written in C++.
.. raw:: html
</div>
</div>
</div>
+ <h2>A Little More Advanced</h2>
+ <div class="big-intro">
-Get started with Native Client
-==============================
+If you've already got the basics down, you're probably trying to get a real
+application ready for production. You're :doc:`building
+<devguide/devcycle/building>`, :doc:`debugging <devguide/devcycle/debugging>`
+or :doc:`ready to distribute <devguide/distributing>`.
.. raw:: html
- <div class="big-intro">
+ </div>
-#. :doc:`Download the Native Client SDK <sdk/download>`.
-#. Read the :doc:`Technical Overview <overview>`.
-#. Learn how to use the SDK and build both a web app and a Chrome app in the
- :doc:`Getting Started Tutorial <devguide/tutorial/tutorial-part1>`.
+ <div class="left-side">
+ <div class="left-side-inner">
+ <h2>Nuts and Bolts</h2>
+ <div class="big-intro">
+
+You've been working on a Native Client module for a while now and you've run
+into an arcane problem. You may need to refer to the :doc:`PNaCl Bitcode
+Reference <reference/pnacl-bitcode-abi>` or the :doc:`Sandbox internals
+<reference/sandbox_internals/index>`.
.. raw:: html
</div>
+ </div>
+ </div>
+
+I Want to Know Everything
+=========================
+
+So, you like to read now and try later. Start with our :doc:`Technical Overview
+<overview>`
+
+.. raw:: html
+
<div class="big-intro" style="clear: both;">
-Send us questions, comments, and feedback:
-`native-client-discuss <https://groups.google.com/forum/#!forum/native-client-discuss>`_.
+Send us questions, comments, and feedback: `native-client-discuss
+<https://groups.google.com/forum/#!forum/native-client-discuss>`_.
.. raw:: html
</div>
- </div>