Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / native_client_sdk / src / doc / index.rst
blob92dcd2a5e974790ee3fb45a2bd80f836990b57e5
1 ########################
2 Welcome to Native Client
3 ########################
5 .. raw:: html
7   <div id="home">
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>.
10   </div>
11   <div class="big-intro">
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.
15 **Portable Native Client** extends that technology with
16 architecture independence, letting developers compile their code once to run
17 in any website and on any architecture.
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
21 **portability** of the web. Watch the video below for an overview of
22 Native Client, including its goals, how it works, and how
23 Portable Native Client lets developers run native compiled code on the web. 
25 .. Note::
26   :class: note
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/chrome/>`_.
30   When you come back, be sure to `check out our demos 
31   <https://gonativeclient.appspot.com/demo>`_.
33 .. raw:: html
35   </div>
37   <iframe class="video" width="600" height="337"
38   src="//www.youtube.com/embed/MvKEomoiKBA?rel=0" frameborder="0"></iframe>
39   <div class="big-intro">
40   
41 Two Types of Modules
42 ====================
44 Native Client comes in two flavors.
46 * **Portable Native Client (PNaCl)**: Pronounced 'pinnacle', PNaCl runs single, portable (**pexe**) executables and is available
47   in most implementations of Chrome. A translator built into Chrome
48   translates the pexe into native code for the client hardware. The entire
49   module is translated before any code is executed rather than as the code is
50   executed. PNaCl modules can be hosted from any web server.
51 * **Native Client (NaCl)**: Also called traditional or non-portable Native
52   Client, NaCl runs  
53   architecture-dependent (**nexe**) modules, which are packaged into an
54   application. At runtime, the browser decides which nexe to load based on the
55   architecture of the client machine. NaCl modules must be run from the `Chrome
56   Web Store (CWS) <https://chrome.google.com/webstore/category/apps>`_.
57   Fortunately, work from PNaCl modules can be used to create NaCl modules. 
58   
59 These flavors are described in more depth in `PNaCl and NaCl <nacl-and-pnacl>`_
61 .. raw:: html
63   <div class="left-side">
64   <div class="left-side-inner">
65   <h2>Hello World</h2>
66   <div class="big-intro">
68 To jump right in `take the tutorial <devguide/tutorial/tutorial-part1>`_ that walks you through a basic web 
69 application for Portable Native Client (PNaCl). This is a client-side 
70 application that uses HTML, JavaScript, and a Native Client module written in C++.
72 .. raw:: html
74   </div>
75   </div>
76   </div>
77   <h2>A Little More Advanced</h2>
78   <div class="big-intro">
80 If you've already got the basics down, you're probably trying to get a real application ready for production. You're `building </devguide/devcycle/building>`_, `debugging </devguide/devcycle/debugging>`_ or `ready to distribute </devguide/distributing>`_.
82 .. raw:: html
84   </div>
86   <div class="left-side">
87   <div class="left-side-inner">
88   <h2>Nuts and Bolts</h2>
89   <div class="big-intro">
90   
91 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 `PNaCl Bitcode Reference </reference/pnacl-bitcode-abi>`_ or the `Sandbox internals </sandbox_internals/index>`_.
93 .. raw:: html
95   </div>
96   </div>
97   </div>
99 I Want to Know Everything
100 =========================
102 So, you like to read now and try later. Start with our `Technical Overview </overview>`_
104 .. raw:: html
106   <div class="big-intro" style="clear: both;">
108 Send us questions, comments, and feedback:
109 `native-client-discuss <https://groups.google.com/forum/#!forum/native-client-discuss>`_.
111 .. raw:: html
113   </div>