← 最新论文
💻 computer science

Bringing Managed Language Support to WebAssembly with External Library Linking

本文介绍了 WALL-E,这是一个创新的框架,它通过外部客户端-服务器链接策略,使 WebAssembly 能够集成 Python 和 Java 等托管语言,从而在消除传统运行时嵌套开销的同时,实现近乎原生的性能和广泛的语言支持。

原作者: Shuyao Jiang, Ruiying Zeng, Yangfan Zhou, Michael R. Lyu

发布于 2026-06-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Shuyao Jiang, Ruiying Zeng, Yangfan Zhou, Michael R. Lyu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

WebAssembly (Wasm) 想象成一个超级高效、安全且便携的“通用翻译官”。它就像一列高速列车,可以在任何轨道(浏览器、服务器、手机)上运行而不会脱轨。目前,这列火车非常擅长运送那些说“编译型”语言(如 C、C++ 和 Rust)的乘客。这些乘客就像是运动员,可以直接跳上火车并全速奔跑。

然而,现在有一个巨大的问题:这列火车不知道如何处理说“托管型”语言(如 Python、Java 或 JavaScript)的乘客。这些语言就像是需要私人向导(运行时环境)才能在世界中穿行的乘客。他们不能直接跳上火车,必须带着他们的向导一起。

旧方法:“行李箱”问题(运行时嵌套)

在这篇论文之前,让这些托管语言乘客登上火车的唯一方法,就是强迫他们的整个向导(运行时)缩小体积,打包进一个行李箱,然后塞进车厢里。

  • 类比: 想象一下试图把一辆全尺寸的大巴车(Python 解释器)塞进一辆小型轿车(Wasm 模块)里。你必须压扁大巴,折叠座椅,然后把它挤进去。
  • 结果: 虽然可行,但它很慢、很笨重,而且大巴无法发挥它原本的所有功能。这就像是在背着一个沉重的背包时跑马拉松。论文称之为 “运行时嵌套” (Runtime Nesting),因为它很慢,因为你是在另一个虚拟机内部运行另一个虚拟机。

新方案:WALL-E(“远程控制”方法)

作者提出了一个名为 WALL-E(通过外部库进行 Wasm 语言链接)的新框架。与其把大巴车压扁塞进小轿车,WALL-E 说:“让我们把大巴留在外面,让它在自己的轨道上全速行驶,我们只需要用一个遥控器来指挥它即可。”

以下是 WALL-E 的工作原理,使用简单的比喻:

  1. 双团队设置:

    • 驾驶员 (Wasm): 一个由火车能理解的语言(如 Rust)编写的小巧、快速的程序。它安全地留在安全的火车车厢内。
    • 向导 (外部库): 那个沉重、全速运行的 Python/Java/JavaScript 程序留在外部,在其原生的环境中运行,并拥有自己强大的引擎。
  2. 握手 (HTTP):

    • 驾驶员和向导并不直接接触。相反,他们通过一个通用的对讲机系统 HTTP(也就是你浏览器使用的互联网协议)进行交流。
    • 驾驶员发送一条消息:“嘿,向导,请计算一下这个数学题。”
    • 向导在它的原生环境中全速完成繁重的计算任务。
    • 向导传回答案:“这是结果。”
  3. “链接”的魔力:

    • WALL-E 扮演着聪明翻译官的角色。当驾驶员发送请求时,WALL-E 会将数据整齐地打包(就像把信件装进信封)。当向导收到请求时,它会拆开信件,完成工作,并将回复以驾驶员能理解的格式发回。

为什么这意义重大?

论文测试了这个想法,涵盖了 10 种不同的托管语言(包括 Python、Java、JavaScript 等等)。以下是他们的发现:

  • 速度: 它比旧的“行李箱”方法快了 数百倍
    • 类比: 如果说旧方法是像在拥挤的走廊里步行,那么 WALL-E 就像是乘坐高速电梯。在某些测试中,对于计算密集型任务,WALL-E 比旧方法快了 959 倍
  • 灵活性: 你不需要重新构建或压缩语言向导。如果你想使用新版本的 Python 或新的库,只需直接插入即可。旧方法需要复杂的工程设计才能将每个新版本都塞进“行李箱”。
  • 功能性: 因为向导们是在它们天然的栖息地运行,所以它们可以利用所有酷炫的功能(如用于 AI 或数据科学的复杂库),而这些功能在之前的“行李箱”方法中往往是损坏或缺失的。
  • 开销: 发送消息往返的(对讲机延迟)时间微乎其微。对于大多数任务,它占总时间的比例不到 0.3%。这就像拨号的时间相对于交谈本身的时间来说是可以忽略不计的。

局限性

论文中也提到了一些限制:

  • 单行道: 驾驶员可以要求向导做事情,但向导不能突然调用驾驶员来中断它。这是一个严格的“请求与响应”系统。
  • 信任: 向导运行在安全的火车车厢之外。你必须信任向导是安全的,不会制造麻烦,而旧方法则将一切都锁在火车内部。

总结

WALL-E 是一个聪明的框架,它不再试图将沉重、复杂的编程语言强行塞进一个小盒子。相反,它让这些语言在外部自由运行,并通过一个快速的标准互联网连接将它们与安全的 WebAssembly 世界连接起来。这使得 WebAssembly 能够应对现实世界的挑战,因为现代的大多数应用(如 AI 和数据处理)都依赖于这些“托管型”语言。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →