用例

WebAssembly 的 高级目标 定义了 WebAssembly 旨在实现的目标以及实现目标的顺序。 WebAssembly 如何实现其目标已针对 Web非 Web 平台进行了记录。 以下是非排序且不完整的应用程序/域/计算列表,这些应用程序/域/计算将受益于 WebAssembly,并且在 WebAssembly 设计期间被视为用例。

浏览器内部

  • 针对当前交叉编译到 Web 的语言和工具包(C/C++、GWT 等)提供更好的执行。
  • 图像/视频编辑。
  • 游戏
    • 需要快速启动的休闲游戏。
    • 具有大量资产的 AAA 游戏。
    • 游戏门户(混合方/源内容)。
  • 点对点应用程序(游戏、协作编辑、分散式和集中式)。
  • 音乐应用程序(流媒体、缓存)。
  • 图像识别。
  • 实时视频增强(例如,在人们的头上戴帽子)。
  • VR 和增强现实(超低延迟)。
  • CAD 应用程序。
  • 科学可视化和模拟。
  • 交互式教育软件和新闻文章。
  • 平台模拟/仿真(ARC、DOSBox、QEMU、MAME 等)。
  • 语言解释器和虚拟机。
  • POSIX 用户空间环境,允许移植现有的 POSIX 应用程序。
  • 开发人员工具(编辑器、编译器、调试器等)。
  • 远程桌面。
  • VPN。
  • 加密。
  • 本地 Web 服务器。
  • 常见的 NPAPI 用户,在 Web 的安全模型和 API 内。
  • 企业应用程序(例如数据库)的胖客户端。

浏览器外部

  • 游戏分发服务(可移植且安全)。
  • 不可信代码的服务器端计算。
  • 服务器端应用程序。
  • 移动设备上的混合原生应用程序。
  • 跨多个节点的对称计算

如何使用 WebAssembly

  • 整个代码库都在 WebAssembly 中。
  • 主框架在 WebAssembly 中,但 UI 在 JavaScript/HTML 中。
  • 通过针对 WebAssembly 重新使用现有代码,将其嵌入到更大的 JavaScript/HTML 应用程序中。 这可以是任何东西,从简单的辅助库到面向计算的任务卸载。