15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){{+bindTo:partials.standard_nacl_article}}
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<section id="welcome-to-native-client">
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<h1 id="welcome-to-native-client">Welcome to Native Client</h1>
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<div id="home">
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="pull-quote">To get the SDK and<br/>installation instructions<br/>
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<a href="/native-client/sdk/download.html">visit the SDK Download page</a>.
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div>
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<div class="big-intro"><p><strong>Native Client</strong> is a sandbox for running compiled C and C++ code in the
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)browser efficiently and securely, independent of the user&#8217;s operating system.
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<strong>Portable Native Client</strong> extends that technology with
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)architecture independence, letting developers compile their code once to run
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciin any website and on any architecture with ahead-of-time (AOT) translation.</p>
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<p>In short, Native Client brings the <strong>performance</strong> and <strong>low-level control</strong>
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)of native code to modern web browsers, without sacrificing the <strong>security</strong> and
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)<strong>portability</strong> of the web. Watch the video below for an overview of
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)Native Client, including its goals, how it works, and how
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)Portable Native Client lets developers run native compiled code on the web.</p>
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<aside class="note">
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciThis site uses several examples of Native Client. For the best experience,
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconsider downloading the <a class="reference external" href="http://www.google.com/chrome/">latest version of Chrome</a>. When you come back, be sure to <a class="reference external" href="https://gonativeclient.appspot.com/demo">check out
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciour demos</a>.
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</aside>
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)</div>
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<iframe class="video" width="600" height="337"
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)src="//www.youtube.com/embed/MvKEomoiKBA?rel=0" frameborder="0"></iframe>
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="big-intro"><h2 id="two-types-of-modules">Two Types of Modules</h2>
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<p>Native Client comes in two flavors.</p>
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<ul class="small-gap">
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<li><strong>Portable Native Client (PNaCl)</strong>: Pronounced &#8216;pinnacle&#8217;, PNaCl runs single,
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciportable (<strong>pexe</strong>) executables and is available in most implementations of
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChrome. A translator built into Chrome translates the pexe into native code
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifor the client hardware. The entire module is translated before any code is
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciexecuted rather than as the code is executed. PNaCl modules can be hosted from
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciany web server.</li>
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<li><strong>Native Client (NaCl)</strong>: Also called traditional or non-portable Native
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciClient, NaCl runs architecture-dependent (<strong>nexe</strong>) modules, which are
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipackaged into an application. At runtime, the browser decides which nexe to
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciload based on the architecture of the client machine. NaCl modules must be run
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom the <a class="reference external" href="https://chrome.google.com/webstore/category/apps">Chrome Web Store (CWS)</a>. Fortunately, work from
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciPNaCl modules can be used to create NaCl modules.</li>
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</ul>
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<p>These flavors are described in more depth in <a class="reference internal" href="/native-client/nacl-and-pnacl.html"><em>PNaCl and NaCl</em></a></p>
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="left-side">
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="left-side-inner">
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<h2>Hello World</h2>
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="big-intro"><p>To jump right in <a class="reference internal" href="/native-client/devguide/tutorial/tutorial-part1.html"><em>take the tutorial</em></a>
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccithat walks you through a basic web application for Portable Native Client
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci(PNaCl). This is a client-side application that uses HTML, JavaScript, and a
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciNative Client module written in C++.</p>
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div>
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div>
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div>
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<h2>A Little More Advanced</h2>
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="big-intro"><p>If you&#8217;ve already got the basics down, you&#8217;re probably trying to get a real
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciapplication ready for production. You&#8217;re <a class="reference internal" href="/native-client/devguide/devcycle/building.html"><em>building</em></a>, <a class="reference internal" href="/native-client/devguide/devcycle/debugging.html"><em>debugging</em></a>
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccior <a class="reference internal" href="/native-client/devguide/distributing.html"><em>ready to distribute</em></a>.</p>
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div>
605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="left-side">
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="left-side-inner">
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<h2>Nuts and Bolts</h2>
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="big-intro"><p>You&#8217;ve been working on a Native Client module for a while now and you&#8217;ve run
651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciinto an arcane problem. You may need to refer to the <a class="reference internal" href="/native-client/reference/pnacl-bitcode-abi.html"><em>PNaCl Bitcode
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciReference</em></a> or the <a class="reference internal" href="/native-client/reference/sandbox_internals/index.html"><em>Sandbox internals</em></a>.</p>
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div>
685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)</div>
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci</div><h2 id="i-want-to-know-everything">I Want to Know Everything</h2>
701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<p>So, you like to read now and try later. Start with our <a class="reference internal" href="/native-client/overview.html"><em>Technical Overview</em></a></p>
711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci<div class="big-intro" style="clear: both;"><p>Send us questions, comments, and feedback: <a class="reference external" href="https://groups.google.com/forum/#!forum/native-client-discuss">native-client-discuss</a>.</p>
725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)</div></section>
735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){{/partials.standard_nacl_article}}
75