Можете ли вы встроить приложение GraalVM в браузер?
GraalVM имеет так много удивительных возможностей. Но я не видел, но хотел бы иметь возможность запускать приложение GraalVM в браузере. Источники, подобные этому (Top 10 Things To To With GraalVM), показывают взаимодействие с Node.js, но не запускают скомпилированное приложение в браузере.
Это возможно? Если да, есть ли документация по этому вопросу? Спасибо!
2 ответа
Что ж, похоже, это возможно с помощью веб-сборки. От руководителя VM Graal Томаса Вюртингера: https://twitter.com/thomaswue/status/943592646915878912?lang=en
Веб-сборка полезна для статически типизированных языков (как бэкэнд LLVM). Мне неизвестно о какой-либо реализации Ruby, R или Python, нацеленной на Webassembly. Graal VM сможет запускаться через веб-сборку в браузере. Он также имеет "родной" режим с автономными двоичными файлами.
Поэтому, если вы программируете что-то вроде Clojure или Python и планируете компилировать в Webassembly через Graal VM, вы, скорее всего, столкнетесь с теми же ограничениями, что и Webassembly, например с изолированной программной средой браузера и возможностью доступа только к веб-API. Будет интересно посмотреть, можно ли передать эти границы через сообщения об ошибках или другие проверки во время компиляции.
Было бы очень интересно увидеть браузер, который встраивает GraalVM и может запускать его движок для языков, даже если изначально только для JavaScript.
На данный момент таких браузеров, насколько я знаю, нет. Возможно, интересным первым шагом было бы взять Electronjs и попробовать заменить версию используемого им узла версией node.js из GraalVM. Это не тривиально, так как они вносят некоторые изменения в stock node.js, а GraalVM вводит некоторые изменения, когда заменяет движок JavaScript своей собственной реализацией.
Тем не менее, это определенно должно быть возможно достичь.