用例
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 应用程序中。 这可以是任何东西,从简单的辅助库到面向计算的任务卸载。