Wasmer公司推出了Edge.js,这是一个基于WebAssembly的Java运行时,专门设计用于在AI和边缘计算场景中安全运行Node.js工作负载。Node应用程序可以在WebAssembly沙盒内运行。
Edge.js于3月16日发布,可通过edgejs.org访问。据Wasmer介绍,Edge.js旨在让现有的Node.js应用程序能够安全运行,并实现容器无法达到的启动时间。Edge.js没有引入新的API,而是保持了Node兼容性,并使用WebAssembly隔离执行过程中的不安全部分。现有的Node.js应用程序和原生模块可以无需修改直接运行,同时系统调用和原生模块通过WASIX进行沙盒隔离。WASIX是WebAssembly系统接口(WASI)的扩展,旨在使WebAssembly与POSIX程序更加兼容,从而在服务器和浏览器环境中实现更复杂应用程序的无缝执行。
重新构想Node.js运行方式
Edge.js通过--safe模式实现沙盒隔离。据Wasmer表示,它专为AI和无服务器工作负载而构建。Edge.js目前支持V8和JavaCore Java引擎。该架构在设计上与引擎无关,计划增加对QuickJS和SpiderMonkey引擎的支持,并欢迎更多引擎的加入。
性能表现与优化计划
Edge.js在原生运行时比当前的Node.js慢约5%到20%,在使用Wasmer完全沙盒化运行时慢约30%。在某些情况下,当原生与Wasm之间的工作密集时,比如进行HTTP基准测试,性能差距可能会更大。Wasmer计划在Edge.js 1.0版本和Wasmer的后续版本中专注于缩小这一性能差距。
Q&A
Q1:Edge.js是什么?它有什么特点?
A:Edge.js是Wasmer公司推出的基于WebAssembly的Java运行时,专门设计用于在AI和边缘计算场景中安全运行Node.js工作负载。它的主要特点是保持Node兼容性、支持沙盒隔离,并能实现比容器更快的启动时间。
Q2:Edge.js的性能表现如何?
A:Edge.js在原生运行时比当前Node.js慢约5%到20%,在完全沙盒化运行时慢约30%。在进行HTTP基准测试等密集的原生与Wasm交互工作时,性能差距可能更大。Wasmer计划在后续版本中优化这一性能差距。
Q3:Edge.js支持哪些Java引擎?
A:Edge.js目前支持V8和JavaCore Java引擎,架构设计上与引擎无关。计划增加对QuickJS和SpiderMonkey引擎的支持,并欢迎更多引擎的加入。