7 ms·
First there was NaCl which was a subset of x86 code leveraging x86 features to sandbox the execution. This x86 subset was produced by a special toolchain and co
by wingless 10y ago
First there was NaCl which was a subset of x86 code leveraging x86 features to sandbox the execution. This x86 subset was produced by a special toolchain and could be verified before running.
Then PNaCl came along with a platform-independent bitcode format based on LLVM IR, which was translated to host's native code in the browser.
Then WASM (also platform-independent) came along striving to be a multi-vendor solution. Unlike the other two WASM directly targets the JavaScript engine. It started out as a serialization format for JavaScript AST.
- amyjess 10y agoAdding to this, PNaCl relies heavily on Chrome's sandbox, so any third-party implementation of PNaCl would involve re-implementing large swaths of Chrome. It's not as portable as you'd think. WASM was designed from the ground up to not depend on any browser's implementation.