| OLD | NEW |
| 1 .. _overview: | 1 .. _overview: |
| 2 | 2 |
| 3 ################## | 3 ################## |
| 4 Technical Overview | 4 Technical Overview |
| 5 ################## | 5 ################## |
| 6 | 6 |
| 7 .. contents:: | 7 .. contents:: |
| 8 :local: | 8 :local: |
| 9 :backlinks: none | 9 :backlinks: none |
| 10 :depth: 2 | 10 :depth: 2 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 application---you don't need to spend time reinventing and debugging code | 78 application---you don't need to spend time reinventing and debugging code |
| 79 that's already proven to work well. | 79 that's already proven to work well. |
| 80 * **Legacy desktop applications:** Native Client provides a smooth migration | 80 * **Legacy desktop applications:** Native Client provides a smooth migration |
| 81 path from desktop applications to the web. You can port and recompile existing | 81 path from desktop applications to the web. You can port and recompile existing |
| 82 code for the computation engine of your application directly to Native Client, | 82 code for the computation engine of your application directly to Native Client, |
| 83 and need repurpose only the user interface and event handling portions to the | 83 and need repurpose only the user interface and event handling portions to the |
| 84 new browser platform. Native Client allows you to embed existing functionality | 84 new browser platform. Native Client allows you to embed existing functionality |
| 85 directly into the browser. At the same time, your application takes advantage | 85 directly into the browser. At the same time, your application takes advantage |
| 86 of things the browser does well: handling user interaction and processing | 86 of things the browser does well: handling user interaction and processing |
| 87 events, based on the latest developments in HTML5. | 87 events, based on the latest developments in HTML5. |
| 88 * **Enterprise applications that require heavy computation:** Native Client | 88 * **Heavy computation in enterprise applications:** Native Client handles the |
| 89 handles the number crunching required by large-scale enterprise applications. | 89 number crunching required by large-scale enterprise applications. To ensure |
| 90 To ensure protection of user data, Native Client enables you to build complex | 90 protection of user data, Native Client enables you to build complex |
| 91 cryptographic algorithms directly into the browser so that unencrypted data | 91 cryptographic algorithms directly into the browser so that unencrypted data |
| 92 never goes out over the network. | 92 never goes out over the network. |
| 93 * **Multimedia applications:** Codecs for processing sounds, images, and movies | 93 * **Multimedia applications:** Codecs for processing sounds, images, and movies |
| 94 can be added to the browser in a Native Client module. | 94 can be added to the browser in a Native Client module. |
| 95 * **Games:** Native Client enables a web application to run close to native | 95 * **Games:** Native Client enables a web application to run close to native |
| 96 speed, reusing existing multithreaded/multicore C/C++ code bases, combined | 96 speed, reusing existing multithreaded/multicore C/C++ code bases, combined |
| 97 with low-level access to low-latency audio, networking APIs and OpenGL ES with | 97 with low-level access to low-latency audio, networking APIs and OpenGL ES with |
| 98 programmable shaders. Programming to Native Client also enables your binary to | 98 programmable shaders. Programming to Native Client also enables your binary to |
| 99 run unchanged across many platforms. Native Client is a natural fit for | 99 run unchanged across many platforms. Native Client is a natural fit for |
| 100 running a physics engine or artificial intelligence module that powers a | 100 running a physics engine or artificial intelligence module that powers a |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 within the Native Client sandbox as described above. It also uses intelligent | 157 within the Native Client sandbox as described above. It also uses intelligent |
| 158 caching to avoid re-compiling the **pexe** if it was already compiled on the | 158 caching to avoid re-compiling the **pexe** if it was already compiled on the |
| 159 client's browser. | 159 client's browser. |
| 160 | 160 |
| 161 Native Client also supports running a **nexe** directly in the browser. However, | 161 Native Client also supports running a **nexe** directly in the browser. However, |
| 162 since a **nexe** contains architecture-specific machine code, distributing | 162 since a **nexe** contains architecture-specific machine code, distributing |
| 163 **nexe** modules on the open web is not allowed. **nexe** modules can only be | 163 **nexe** modules on the open web is not allowed. **nexe** modules can only be |
| 164 used as part of applications that are installed from the Chrome Web Store and in | 164 used as part of applications that are installed from the Chrome Web Store and in |
| 165 browser extensions. | 165 browser extensions. |
| 166 | 166 |
| 167 For more details, see :doc:`NaCl and PNaCl <nacl-and-pnacl>`. |
| 168 |
| 167 Toolchains | 169 Toolchains |
| 168 ---------- | 170 ---------- |
| 169 | 171 |
| 170 A *toolchain* is a set of tools used to create an application from a set of | 172 A *toolchain* is a set of tools used to create an application from a set of |
| 171 source files. In the case of Native Client, a toolchain consists of a compiler, | 173 source files. In the case of Native Client, a toolchain consists of a compiler, |
| 172 linker, assembler and other tools that are used by the developer to convert an | 174 linker, assembler and other tools that are used by the developer to convert an |
| 173 application written in C/C++ into a module loadable by the browser. | 175 application written in C/C++ into a module loadable by the browser. |
| 174 | 176 |
| 175 The Native Client SDK provides two toolchains: | 177 The Native Client SDK provides two toolchains: |
| 176 | 178 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 help developers make adjustments to API changes and take advantage of new | 247 help developers make adjustments to API changes and take advantage of new |
| 246 features. | 248 features. |
| 247 | 249 |
| 248 Where to go next | 250 Where to go next |
| 249 ================ | 251 ================ |
| 250 | 252 |
| 251 The :doc:`quick start <quick-start>` document provides links to downloads and | 253 The :doc:`quick start <quick-start>` document provides links to downloads and |
| 252 documentation that should help you get started with developing and distributing | 254 documentation that should help you get started with developing and distributing |
| 253 NaCl applications. | 255 NaCl applications. |
| 254 | 256 |
| OLD | NEW |