一句话:通过迄今最大规模的真实世界 WebAssembly 二进制测量,揭示工业采用现状并为开发者、维护者和研究者提出实践建议。
随着 JavaScript 在 Web 应用中的性能与安全问题受到批评,WebAssembly(Wasm)自 2017 年提出后被视作其补充;凭借紧凑体积、接近原生速度与可移植性,Wasm 二进制逐渐成为其他高级语言工业项目的编译目标,并承担浏览器内计算密集型任务。然而,此前缺乏对真实世界采用 Wasm 二进制的大规模测量研究。本文填补这一空白,构建据作者所知最大的数据集,从工业视角刻画其元数据、与源编程语言的关系、安全威胁的存在情况以及实际用途等现状,并按 Web 开发者、Wasm 维护者和研究者三类社区角色重新组织发现,给出相应建议与最佳实践,以启发 Web 与 Wasm 的未来方向。
As JavaScript has been criticized for performance and security issues in web applications, WebAssembly (Wasm) was proposed in 2017 and is regarded as the complementation for JavaScript. Due to its advantages like compact-size, native-like speed, and portability, Wasm binaries are gradually used as the compilation target for industrial projects in other high-level programming languages and are responsible for computation-intensive tasks in browsers, e.g., 3D graphic rendering and video decoding. Intuitively, characterizing in-the-wild adopted Wasm binaries from different perspectives, like their metadata, relation with source programming language, existence of security threats, and practical purpose, is the prerequisite before delving deeper into the Wasm ecosystem and beneficial to its roadmap selection. However, currently, there is no work that conducts a large-scale measurement study on in-the-wild adopted Wasm binaries. To fill this gap, we collect the largest-ever dataset to the best of our knowledge, and characterize the status quo of them from industry perspectives. According to the different roles of people engaging in the community, i.e., web developers, Wasm maintainers, and researchers, we reorganized our findings to suggestions and best practices for them accordingly. We believe this work can shed light on the future direction of the web and Wasm.