GraalVM具有许多令人惊讶的功能。但是有一件事我没有看到,但想要看到的是能够在浏览器中运行GraalVM应用程序。像这样的来源(与 GraalVM 相关的 10 件事(显示了与 Node.js 的互操作,但没有在浏览器中运行已编译的应用程序。
这可能吗?如果是这样,是否有这方面的文档?谢谢!
好吧,看起来使用Webassembly是可能的。来自Graal VM负责人Thomas Wuerthinger:https://twitter.com/thomaswue/status/943592646915878912?lang=en
Webassembly 对于静态类型语言很有用(如 LLVM 后端(。我不知道有任何Ruby,R或Python实现 成功定位 WebAssembly。Graal VM 将能够通过 浏览器中的 Web 程序集。它还具有"本机"模式 独立二进制文件。
因此,如果你使用Clojure或Python之类的东西进行编码,并计划通过Graal VM编译到Webassembly,你可能会遇到与Webassembly相同的限制,例如浏览器沙箱和只能访问Web API。看看这些边界是否可以通过错误消息或其他编译时检查来传达,这将是一件有趣的事情。
看到一个嵌入GraalVM的浏览器可以运行其语言引擎,即使最初只是JavaScript,这将是非常有趣的。
据我所知,目前还没有这样的浏览器。也许一个有趣的第一步是采用Electronjs,并尝试将他们使用的node版本替换为GraalVM中的node.js版本。这并非微不足道,因为它们对库存节点进行了一些更改.js并且GraalVM在用自己的实现替换JavaScript引擎时引入了一些更改。
但是,这绝对应该是可以实现的。