你可以在浏览器中嵌入GraalVM应用程序吗?

时间:2018-06-12 07:14:31

标签: graalvm

GraalVM有许多令人惊讶的功能。但有一点我没有看到,但希望能够在浏览器中运行GraalVM应用程序。这样的来源(Top 10 Things To Do With GraalVM)显示与Node.js互操作,但没有在浏览器中运行已编译的应用程序。

这可能吗?如果是这样,有关于此的文件吗?谢谢!

2 个答案:

答案 0 :(得分:1)

看到一个嵌入了GraalVM并可以针对语言运行引擎的浏览器非常有趣,即使最初只是针对JavaScript。

据我所知,目前没有此类浏览器。也许有趣的第一步是采用Electronjs,并尝试用GraalVM中的node.js版本替换其使用的节点版本。这并不是一件容易的事,因为当它们用自己的实现替换JavaScript引擎时,它们对库存的node.js进行了一些更改,而GraalVM进行了一些更改。

但是,绝对应该有可能实现。

答案 1 :(得分:1)

好吧,看来使用Webassembly可以做到这一点。来自Graal VM领导的Thomas Wuerthinger:https://twitter.com/thomaswue/status/943592646915878912?lang=en

  

Webassembly对于静态类型的语言(如LLVM)很有用   后端)。我不知道任何Ruby,R或Python实现   成功定位到Webassembly。 Graal VM将能够通过运行   浏览器中的Webassembly。它还具有“本机”模式,   独立的二进制文件。

因此,如果您使用Clojure或Python之类的代码进行编码,并计划通过Graal VM编译为Webassembly,则可能会遇到与Webassembly相同的限制,例如浏览器沙箱,并且只能访问Web蜜蜂。有趣的是,看看这些边界是否可以通过错误消息或其他编译时检查来传达。