使用案例

在WebAssembly的高层目标文档中定义了在Web非Web平台上,WebAssembly的目标是什么,以什么顺序以及如何实现这些目标。下面的内容是可能从WebAssembly中收益的应用/领域/计算的一个不完全和未排序的列表,同时在WebAssembly的设计阶段,它们也作为其使用的案例。

浏览器内

  • 已经可以交叉编译到Web的语言和工具集(C/C++,GWT……),可获得更好的执行效率
  • 图像和视频编辑
  • 游戏:
    • 需要快速启动的休闲游戏
    • 需要加载很多资源的AAA游戏)
    • 游戏门户(混合团体或自产内容)
  • P2P应用(游戏,协同编辑,去中心化和中心化)
  • 音乐应用(流式,缓冲)
  • 图像识别
  • 在线视频增强(例如,给头上加一顶帽子)
  • 虚拟现实和增强现实(非常低的延迟)
  • CAD应用
  • 科学可视化和仿真
  • 交互性教育软件和新闻文章
  • 平台模拟/仿真(ARC,DOSBox,QEMU,MAME等)
  • 编程语言解释器和虚拟机
  • 允许移植现有POSIX应用到Web的POSIX用户空间环境
  • 开发者工具(编辑器,编译器,调试器……)
  • 远程桌面
  • VPN
  • 加密
  • 本地web服务器
  • 在Web安全的模型和API下的普通NPAPI使用者
  • 企业应用的胖客户端(例如数据库)

浏览器外

  • 游戏分发服务(可移植和安全的)
  • 不可信代码在服务端的运行
  • 服务端应用
  • 在移动设备上的混合本地应用

WebAssembly的使用方式

  • 整个以Web Assembly作为代码基
  • 以Web Assembly为主要框架,但UI部分是JavaScript/HTML代码
  • 以Web Assembly为编译目标格式重用现有代码,嵌入到更大的JavaScript/HTML应用中;现有代码可以是简单的帮助库到计算密集型任务等任意代码