本文作者:Renee Shah,Amplify Partner
原文链接:https://reneeshah.medium.com/how-webassembly-gets-used-the-18-most-exciting-startups-building-with-wasm-939474e951db
本文的翻译与传播已获得原作者 Renee 的授权。
每当我聊起我对 WebAssembly(简称 “Wasm”)感兴趣时,大家常常问我 “WebAssembly 到底能用在哪里?” 。因此就有了这篇文章,我将讲解初创公司在生产中如何使用 WebAssembly 。和其它新兴技术一样,一项技术的早期,五成的精力会花在如何以及怎样使用方面的探索。 我希望这篇文章能让开发者更深入地了解人们日常是怎么使用 Wasm 的,并帮助大家更好地进行技术选择。
本文结构
本文假设你对 WebAssembly 已经有了一定的了解,但如果你需要入门指引,可以查看这篇文章。我和 18 家初创公司聊了聊,这些公司或在生产中使用了 WebAssembly,或在创建核心基础设施以开发 Wasm 应用程序。1 每家受访公司都回答了两个问题,答案就在问题后面。
- 你是如何使用 Wasm 的?
- 你为什么从所有的技术方案中选择了 Wasm?
我将这18家公司分成了以下几类:
- 构建的产品中使用了 Wasm 技术的初创公司
- 服务端
- 客户端
- 构建 Wasm 基础设施的初创公司
- 服务端
- 客户端
让我们开始吧。
产品使用 Wasm 技术的初创公司
使用 Wasm – 服务端
Drifting in Space,Paul Butler,创始人
你们是如何使用 Wasm 的? 我们做的是 Jamsocket, 它允许开发者为每个用户即时部署服务器。 为了和现有镜像兼容,我们使用 OCI 容器作为部署单元,但我们有一个使用我们的开源 Stateroom 包部署 Wasm 服务器模块的工作流程。 我们正在尝试在不使用 Docker 的情况下直接用 Wasm ,这样可以缩短冷启动时间。
为什么选择 Wasm? 我们的核心功能取决于我们的服务器启动以响应用户操作,因此冷启动时间非常重要。 相对于 Docker,Wasm 提供了快速的冷启动时间,并开辟了有趣的可能性,例如在节点之间移动正在运行的模块,以在运行模块的资源需求发生变化时对其进行负载平衡。
Hash.ai,David Wilkinson, CEO
你们是如何使用 Wasm 的? HASH 使用 Wasm 作为我们仿真引擎的通用字节码的关键层。 我们用 Rust 编写 hEngine 并包含一个 Wasm 编译目标,然后从我们的其他语言(包括 Python 和 JavaScript)调用 Wasm,以访问任何环境中的通用引擎处理。 通过将 Wasm 嵌入到我们的 Web 应用程序中,我们获取一个可以在客户端运行代码的高性能仿真引擎,并且可以轻松地确保跨多个代码编写平台的仿真行为一致。
为什么选择 Wasm? 在 HASH 诞生之初,Wasm 让我们选择了 Rust 作为我们的核心平台编程语言。Wasm 正在迭代成为一个更加可移植、可访问和高效的执行环境,这意味着我们能够相信 Rust 和 Wasm 会朝着我们需要的方向发展。 Rust 和 Wasm 也确实有着这些发展。 我们也很看好 Wasm 继续成长为可跨语言和平台访问的通用