Nacl-web-plug-in
Are you targeting or the open web?
Before NaCl, executing complex web applications—such as 3D video games, audio editing suites, and CAD software—was highly inefficient. JavaScript engines were not fast enough to handle computationally heavy tasks without dropping frames or freezing interfaces.
The nacl-web-plug-in was a groundbreaking technology that pushed the boundaries of what was possible in a web browser. It delivered near-native performance for demanding applications while pioneering a formidable, multi-layered security architecture that made running untrusted native code feasible.
Proceedings of the 30th IEEE Symposium on Security and Privacy . You can find the full text through the IEEE Xplore Digital Library Google Scholar nacl-web-plug-in
The NACL Web Plug‑in is a Chrome extension that was first published in the Chrome Web Store on 23 October 2015. At its peak, it had between 200,000 and 300,000 users. The extension is described simply as “Use the Web View App to stay in touch with what you love on Chrome”, but in practice it serves as a wrapper that enables a web page to load and interact with a NaCl module. Once installed, users can load the extension’s own webpage, click “Start”, and then enter the local IP address of a device (such as an IP camera) along with the necessary credentials to access its live feed.
| Feature | NaCl / PNaCl (Legacy) | WebAssembly (Wasm) (Modern Standard) | | :--- | :--- | :--- | | | Browser sandbox for running native (C/C++) code; runs a subset of x86/ARM/MIPS code | Binary instruction format for a stack-based virtual machine; a compilation target for high-level languages like C/C++, Rust, and Go | | Portability | PNaCl provided portability by compiling to a portable bitcode format; still required Chrome | Built on open standards and supported by all major browsers (Chrome, Firefox, Safari, Edge) | | Integration | Required a dedicated plugin; interaction via messages with JavaScript | Seamlessly integrated with JavaScript and the Web APIs; no plugin needed | | Maturity | Discontinued; development and security support ceased in 2021 | Active and mature; supported by a large ecosystem of tools, compilers, and community resources | | Performance | Near-native speeds, as code runs directly on the processor in a sandbox | Near-native speeds, with ongoing optimizations for features like SIMD and multithreading | | Security | Strong sandbox, but as a discontinued technology, it no longer receives security patches | Designed with security as a core principle; executes in a safe, sandboxed environment separate from the host system |
| Original NaCl Feature | Modern Replacement | |-----------------------|--------------------| | High-performance compute | (Wasm) + SIMD + threads | | Graphics (OpenGL ES) | WebGL 2.0 or WebGPU | | File system access | File System Access API (origin-private) | | Raw UDP/TCP sockets | WebTransport or WebRTC | | Direct audio synthesis | Web Audio API (AudioWorklet) | Are you targeting or the open web
Google Native Client (NaCl) was a groundbreaking sandboxing technology developed by Google. It allowed C and C++ code to run safely inside web browsers at near-native speeds.
Many users confuse this with a generic NPAPI plugin. In reality, the nacl-web-plug-in was the for .nmf (Native Client Manifest) and .pexe (Portable Executable) files.
The NaCl plug-in functioned as an integral part of Chrome (and briefly other browsers via an extension). Key technical aspects include: You can find the full text through the
<embed name="nacl_module" id="hello_world" width=0 height=0 src="hello_world.nmf" type="application/x-nacl" />
Running compiled machine code from untrusted internet sources is inherently dangerous. NaCl solved this by pioneering a strict double-sandbox architecture. 1. Software Fault Isolation (SFI)
