index.html 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. {{+bindTo:partials.standard_nacl_article}}
  2. <b><font color="#cc0000">
  3. NOTE:
  4. Deprecation of the technologies described here has been announced
  5. for platforms other than ChromeOS.<br/>
  6. Please visit our
  7. <a href="/native-client/migration">migration guide</a>
  8. for details.
  9. </font></b>
  10. <hr/><section id="welcome-to-native-client">
  11. <h1 id="welcome-to-native-client">Welcome to Native Client</h1>
  12. <div id="home">
  13. <div class="pull-quote">To get the SDK and<br/>installation instructions<br/>
  14. <a href="/native-client/sdk/download.html">visit the SDK Download page</a>.
  15. </div>
  16. <div class="big-intro"><p><strong>Native Client</strong> is a sandbox for running compiled C and C++ code in the
  17. browser efficiently and securely, independent of the user&#8217;s operating system.
  18. <strong>Portable Native Client</strong> extends that technology with
  19. architecture independence, letting developers compile their code once to run
  20. in any website and on any architecture with ahead-of-time (AOT) translation.</p>
  21. <p>In short, Native Client brings the <strong>performance</strong> and <strong>low-level control</strong>
  22. of native code to modern web browsers, without sacrificing the <strong>security</strong> and
  23. <strong>portability</strong> of the web. Watch the video below for an overview of
  24. Native Client, including its goals, how it works, and how
  25. Portable Native Client lets developers run native compiled code on the web.</p>
  26. <aside class="note">
  27. This site uses several examples of Native Client. For the best experience,
  28. consider downloading the <a class="reference external" href="https://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
  29. our demos</a>.
  30. </aside>
  31. </div>
  32. <iframe class="video" width="600" height="337"
  33. src="//www.youtube.com/embed/MvKEomoiKBA?rel=0" frameborder="0"></iframe>
  34. <div class="big-intro"><h2 id="two-types-of-modules">Two Types of Modules</h2>
  35. <p>Native Client comes in two flavors.</p>
  36. <ul class="small-gap">
  37. <li><strong>Portable Native Client (PNaCl)</strong>: Pronounced &#8216;pinnacle&#8217;, PNaCl runs single,
  38. portable (<strong>pexe</strong>) executables and is available in most implementations of
  39. Chrome. A translator built into Chrome translates the pexe into native code
  40. for the client hardware. The entire module is translated before any code is
  41. executed rather than as the code is executed. PNaCl modules can be hosted from
  42. any web server.</li>
  43. <li><strong>Native Client (NaCl)</strong>: Also called traditional or non-portable Native
  44. Client, NaCl runs architecture-dependent (<strong>nexe</strong>) modules, which are
  45. packaged into an application. At runtime, the browser decides which nexe to
  46. load based on the architecture of the client machine.
  47. Apps and Extensions installed via the <a class="reference external" href="https://chrome.google.com/webstore/category/apps">Chrome Web Store (CWS)</a> can use NaCl
  48. modules without additional prompting.
  49. NaCl apps can also be installed from chrome://extensions or
  50. the command-line during development,
  51. however, this is not a recommended distribution mechanism.</li>
  52. </ul>
  53. <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>
  54. <div class="left-side">
  55. <div class="left-side-inner">
  56. <h2>Hello World</h2>
  57. <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>
  58. that walks you through a basic web application for Portable Native Client
  59. (PNaCl). This is a client-side application that uses HTML, JavaScript, and a
  60. Native Client module written in C++.</p>
  61. </div>
  62. </div>
  63. </div>
  64. <h2>A Little More Advanced</h2>
  65. <div class="big-intro"><p>If you&#8217;ve already got the basics down, you&#8217;re probably trying to get a real
  66. application 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>
  67. or <a class="reference internal" href="/native-client/devguide/distributing.html"><em>ready to distribute</em></a>.</p>
  68. </div>
  69. <div class="left-side">
  70. <div class="left-side-inner">
  71. <h2>Nuts and Bolts</h2>
  72. <div class="big-intro"><p>You&#8217;ve been working on a Native Client module for a while now and you&#8217;ve run
  73. into 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
  74. Reference</em></a> or the <a class="reference internal" href="/native-client/reference/sandbox_internals/index.html"><em>Sandbox internals</em></a>.</p>
  75. </div>
  76. </div>
  77. </div><h2 id="i-want-to-know-everything">I Want to Know Everything</h2>
  78. <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>
  79. <div class="big-intro" style="clear: both;"><p>Send us comments and feedback on the <a class="reference external" href="https://groups.google.com/forum/#!forum/native-client-discuss">native-client-discuss</a> mailing list,
  80. or ask questions using Stack Overflow&#8217;s <a class="reference external" href="https://stackoverflow.com/questions/tagged/google-nativeclient">google-nativeclient</a> tag.</p>
  81. </div></section>
  82. {{/partials.standard_nacl_article}}