paperbot · PL 论文追踪

全部论文 待读 收藏

P2 An Empirical Study of WebAssembly Usage in Node.js

Node.js 中 WebAssembly 使用的实证研究
ICSE Proceedings of the 2026 IEEE/ACM 48th International Conference on Software Engineering2026匹配度 3/10 · 该论文是关于 Node.js 中 WebAssembly 使用情况的实证研究与数据集构建,虽与程序分析、运行时分析和 JS-Wasm 互操作相关,但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析等核心方向。引用 1 inbox
Michelle Thalakottur, Maxwell Bernstein, Daniel Lehmann, Michael Pradel, Frank Tip
crossref: 2026-09-12

AI 速览

一句话:首次系统研究 Node.js 中 WebAssembly 的使用,并发布含 510 个可执行包、217 个 Wasm 模块的数据集。

WebAssembly 运行于 JavaScript/Node.js 等宿主环境,但两种语言的交互及 Wasm 在 NPM 生态中的使用缺乏实证理解,使分析工具、运行时与生态工具的开发者只能依赖未必成立的假设。本文首次系统研究 Node.js 中的 WebAssembly 使用,构建含 510 个可执行包、217 个唯一 Wasm 模块的数据集,分析包间依赖、JS 与 Wasm 互操作及其对安全、效率与可靠性的影响。结果发现:C/C++/Rust 库移植的 Wasm 二进制缺乏维护;JS 侧对 Wasm 使用测试不足;Wasm 使用动态性较低,可支持务实分析假设;引擎缓存与客户端特定去臃肿存在优化机会。该数据集为后续研究与引擎设计奠定基础。

问题
JavaScript 与 WebAssembly 在 Node.js 中的互操作方式,以及 Wasm 使用对 NPM 生态的影响,尚缺乏实证理解,导致程序分析、运行时引擎与生态工具开发者被迫依赖可能不成立的假设。
方法
构建首个包含 510 个可执行 Node.js 包、覆盖 217 个唯一 WebAssembly 模块的数据集,并据此分析使用 Wasm 的包间依赖、JavaScript 与 Wasm 的互操作模式及其安全、效率与可靠性影响。
评估
通过对该可执行数据集的实证度量与案例分析,归纳出关于跨语言包维护、测试、程序分析假设与引擎优化机会的四类洞察。
原文摘要(Abstract)

WebAssembly code executes within a host environment, such as JavaScript running on Node.js. Despite the increasing popularity of mixed JavaScript-WebAssembly applications, the interactions between these two languages and the effect of WebAssembly usage on the NPM ecosystem, are currently not well understood. As a result, developers of program analyses, runtime engines, and ecosystem tooling are forced to make assumptions that may not hold in practice. Moreover, there currently is no executable dataset of WebAssembly modules that allows for studying how WebAssembly is used at runtime within Node.js packages. This paper presents the first comprehensive study of WebAssembly usage in Node.js code. The study is enabled by a novel dataset that we collect comprising 510 executable Node.js packages that exercise 217 unique WebAssembly modules. We study dependencies among packages that use WebAssembly, how JavaScript and WebAssembly interoperate, and the implications for security, efficiency and reliability in the WebAssembly-JavaScript ecosystem. The study provides several insights and future research opportunities, including: (i) a lack of maintenance of WebAssembly binaries that are ports of C/C++/Rust libraries, which motivates future work on cross-language package maintenance, (ii) a lack of testing of WebAssembly usage from JavaScript, which motivates work on targeted testing techniques; (iii) relatively little dynamism in WebAssembly usage, allowing for pragmatic assumptions in program analyses; and (iv) untapped optimization opportunities in engine caching and client-specific debloating. Beyond these insights, we envision our dataset to provide a basis for future studies, program analyses, and work on WebAssembly engine design.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot11787,
  title = {An Empirical Study of WebAssembly Usage in Node.js},
  author = {Michelle Thalakottur and Maxwell Bernstein and Daniel Lehmann and Michael Pradel and Frank Tip},
  booktitle = {ICSE},
  year = {2026},
  doi = {10.1145/3744916.3764533}
}