WebAssembly 的长久目标

  1. 定义一个可移植、体积小、加载快的二进制格式作为编译结果。通过充分发挥通用硬件的能力(包括移动设备以及物联网),使其在大多数平台上能达到原生的执行效率。
  2. 逐步制定与完善:
    • 主要针对 C/C++,提供一个和 asm.js 有大致相同功能的该标准最小可行性产品(MVP)
    • 其他特性 :unicorn:,首先关注在线程、零成本异常处理和单指令流多数据流等关键功能特性上,然后优先考虑通过反馈和经验总结的其他特性,比如对非 C/C++ 编程语言的支持。
  3. 被设计为可以与现有的 Web 平台完美结合并在其中运行:
    • 维护无版本、特性可测试、向后兼容的 Web 演变过程;
    • 和 JavaScript 执行在相同的语意环境中;
    • 允许和 JavaScript 相互的同步调用;
    • 严格遵守同源策略以及浏览器安全策略;
    • 和 JavaScript 一样,可以访问相同的 Web API 去调用浏览器的功能;以及
    • 定义一个可与二进制格式相互转化的人类可编辑的文本格式,并且支持查看源码的功能。
  4. 被设计为也可以支持非浏览器嵌入的运行形式。
  5. 创造一个伟大的平台:
    • 为 WebAssembly 构建一个新的 LLVM 后端环境和伴随的 Clang 端口(为什么首选 LLVM?);
    • 推广面向 WebAssembly 的其他编译器和工具;以及
    • 启用其他有用的工具