Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / native_client_sdk / src / doc / index.rst
blobf3229fa275d4e4d12ae25453e55d5c66548ae50e
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 with ahead-of-time (AOT) translation.
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
30   <https://www.google.com/chrome/>`_. When you come back, be sure to `check out
31   our demos <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">
41 Two Types of Modules
42 ====================
44 Native Client comes in two flavors.
46 * **Portable Native Client (PNaCl)**: Pronounced 'pinnacle', PNaCl runs single,
47   portable (**pexe**) executables and is available in most implementations of
48   Chrome. A translator built into Chrome translates the pexe into native code
49   for the client hardware. The entire module is translated before any code is
50   executed rather than as the code is executed. PNaCl modules can be hosted from
51   any web server.
52 * **Native Client (NaCl)**: Also called traditional or non-portable Native
53   Client, NaCl runs architecture-dependent (**nexe**) modules, which are
54   packaged into an application. At runtime, the browser decides which nexe to
55   load based on the architecture of the client machine.
56   Apps and Extensions installed via the `Chrome Web Store (CWS)
57   <https://chrome.google.com/webstore/category/apps>`_ can use NaCl
58   modules without additional prompting.
59   NaCl apps can also be installed from chrome://extensions or
60   the command-line during development,
61   however, this is not a recommended distribution mechanism.
63 These flavors are described in more depth in :doc:`PNaCl and NaCl
64 <nacl-and-pnacl>`
66 .. raw:: html
68   <div class="left-side">
69   <div class="left-side-inner">
70   <h2>Hello World</h2>
71   <div class="big-intro">
73 To jump right in :doc:`take the tutorial <devguide/tutorial/tutorial-part1>`
74 that walks you through a basic web application for Portable Native Client
75 (PNaCl). This is a client-side application that uses HTML, JavaScript, and a
76 Native Client module written in C++.
78 .. raw:: html
80   </div>
81   </div>
82   </div>
83   <h2>A Little More Advanced</h2>
84   <div class="big-intro">
86 If you've already got the basics down, you're probably trying to get a real
87 application ready for production. You're :doc:`building
88 <devguide/devcycle/building>`, :doc:`debugging <devguide/devcycle/debugging>`
89 or :doc:`ready to distribute <devguide/distributing>`.
91 .. raw:: html
93   </div>
95   <div class="left-side">
96   <div class="left-side-inner">
97   <h2>Nuts and Bolts</h2>
98   <div class="big-intro">
100 You've been working on a Native Client module for a while now and you've run
101 into an arcane problem. You may need to refer to the :doc:`PNaCl Bitcode
102 Reference <reference/pnacl-bitcode-abi>` or the :doc:`Sandbox internals
103 <reference/sandbox_internals/index>`.
105 .. raw:: html
107   </div>
108   </div>
109   </div>
111 I Want to Know Everything
112 =========================
114 So, you like to read now and try later. Start with our :doc:`Technical Overview
115 <overview>`
117 .. raw:: html
119   <div class="big-intro" style="clear: both;">
121 Send us comments and feedback on the `native-client-discuss
122 <https://groups.google.com/forum/#!forum/native-client-discuss>`_ mailing list,
123 or ask questions using Stack Overflow's `google-nativeclient
124 <https://stackoverflow.com/questions/tagged/google-nativeclient>`_ tag.
126 .. raw:: html
128   </div>