为什么需要 webassembly?
Why is webassembly needed?
为什么浏览器需要 webassembly 才能 运行 从非 javascript 语言编译的程序?具体来说,为什么不能改用x86汇编?
我四处搜索,但找不到任何关于此的有用信息。
可能与 JavaScript 的互操作性有关,包括 HTML5 和浏览器 API?是 WASM 调用和被调用的能力 JavaScript 使其在浏览器中有用吗?
长话短说:
WebAssembly 快速、安全、可移植,并且是开放 Web 平台的一部分。
利用 Go、Rust 等强类型语言的优势……(编译器可以在编译时检测到许多错误)
用于编译高级语言的便携式目标
适用于各种平台,包括移动和物联网(不仅仅是 x86)
高效快速(接近原生性能,预编译:相对于JavaScript)
大小高效和加载时间高效的二进制格式
内存安全
沙盒执行环境
非网络嵌入
可从 JavaScript 访问,与现有 Web 平台很好地集成
与 Web 生态系统集成
利用 Web API
支持 Web 的安全模型
保持 Web 的可移植性
为进化发展设计空间
高效快捷
Wasm 堆栈机器被设计为以大小和加载时间高效的二进制格式进行编码。 WebAssembly 旨在通过利用 广泛平台 .
上可用的通用硬件功能以本机速度执行
安全
WebAssembly 描述了一个内存安全的沙盒执行环境,它甚至可以在现有的JavaScript 虚拟机中实现。当嵌入到网络中时,WebAssembly 将强制执行浏览器的同源和权限安全策略。
开放且可调试
WebAssembly 旨在以文本格式进行漂亮打印,以用于调试、测试、实验、优化、学习、教学和手动编写程序。在网络上查看 Wasm 模块的源代码时将使用文本格式。
开放网络平台的一部分
WebAssembly 旨在保持 Web 的无版本、经过功能测试和向后兼容的特性。 WebAssembly 模块将能够调用和调用 JavaScript 上下文,并通过可从 JavaScript 访问的相同 Web API 访问浏览器功能。 WebAssembly 还支持非网络嵌入。
参考文献:
Design Rationale
WebAssembly High-Level Goals
https://webassembly.org/
WASI: WebAssembly System Interface
Features to add after the MVP
为什么浏览器需要 webassembly 才能 运行 从非 javascript 语言编译的程序?具体来说,为什么不能改用x86汇编?
我四处搜索,但找不到任何关于此的有用信息。
可能与 JavaScript 的互操作性有关,包括 HTML5 和浏览器 API?是 WASM 调用和被调用的能力 JavaScript 使其在浏览器中有用吗?
长话短说:
WebAssembly 快速、安全、可移植,并且是开放 Web 平台的一部分。
利用 Go、Rust 等强类型语言的优势……(编译器可以在编译时检测到许多错误)
用于编译高级语言的便携式目标
适用于各种平台,包括移动和物联网(不仅仅是 x86)
高效快速(接近原生性能,预编译:相对于JavaScript)
大小高效和加载时间高效的二进制格式
内存安全
沙盒执行环境
非网络嵌入
可从 JavaScript 访问,与现有 Web 平台很好地集成
与 Web 生态系统集成
利用 Web API
支持 Web 的安全模型
保持 Web 的可移植性
为进化发展设计空间
高效快捷
Wasm 堆栈机器被设计为以大小和加载时间高效的二进制格式进行编码。 WebAssembly 旨在通过利用 广泛平台 .
上可用的通用硬件功能以本机速度执行安全
WebAssembly 描述了一个内存安全的沙盒执行环境,它甚至可以在现有的JavaScript 虚拟机中实现。当嵌入到网络中时,WebAssembly 将强制执行浏览器的同源和权限安全策略。
开放且可调试
WebAssembly 旨在以文本格式进行漂亮打印,以用于调试、测试、实验、优化、学习、教学和手动编写程序。在网络上查看 Wasm 模块的源代码时将使用文本格式。
开放网络平台的一部分
WebAssembly 旨在保持 Web 的无版本、经过功能测试和向后兼容的特性。 WebAssembly 模块将能够调用和调用 JavaScript 上下文,并通过可从 JavaScript 访问的相同 Web API 访问浏览器功能。 WebAssembly 还支持非网络嵌入。
参考文献:
Design Rationale
WebAssembly High-Level Goals
https://webassembly.org/
WASI: WebAssembly System Interface
Features to add after the MVP