GraalJS 是一個在 GraalVM 之上用 Java 實作的 JavaScript 引擎。它是一個符合 ECMAScript 的運行時,用於執行 JavaScript 和 Node.js 應用程序,並包含 GraalVM 堆疊的所有優勢,包括與 Java 的互通性。 GraalJS 是一個開源專案。
GraalJS 的目標是:
從版本 23.1.0 開始,GraalJS 可作為 Maven 工件使用。我們也提供 JavaScript 和 Node.js 運行時的獨立發行版。
感謝 GraalJS,您可以輕鬆地將 JavaScript 嵌入到 Java 應用程式中。所有必需的工件都可以直接從 Maven Central 下載。
所有與嵌入器相關的工件都可以在 Maven 依賴項組 org.graalvm.polyglot 中找到。
下面是一個最小的 Maven 依賴項設置,您可以將其複製到pom.xml中:
< dependency >
< groupId >org.graalvm.polyglot</ groupId >
< artifactId >polyglot</ artifactId >
< version >${graaljs.version}</ version >
</ dependency >
< dependency >
< groupId >org.graalvm.polyglot</ groupId >
< artifactId >js</ artifactId >
< version >${graaljs.version}</ version >
< type >pom</ type >
</ dependency >
這使得 GraalJS 建構在 Oracle GraalVM 之上,並根據 GraalVM 免費條款與條件 (GFTC) 取得授權。如果您想使用基於 GraalVM Community Edition 建置的 GraalJS,請使用js-community
。
若要存取多語言隔離工件(僅限 GFTC),請使用-isolate
後綴(例如js-isolate
)。
有關完整的可運行範例,請參閱 GitHub 上的多語言嵌入演示。
您可以將 GraalJS 與 GraalVM JDK、Oracle JDK 或 OpenJDK 一起使用。如果您喜歡在普通 JVM 上運行,請查看在普通 JDK 上運行 GraalJS。請注意,在此模式下,GraalVM 的許多功能和最佳化不可用。由於這些限制,在庫存 JVM 上運行不支援 - 請改用 GraalVM。
獨立發行版發佈在 GitHub 上。有兩種語言運行時選項可供選擇:
為了區分它們,JVM 附帶的獨立版本的名稱中帶有-jvm
中綴。此外,GraalVM Community Edition 版本的名稱中包含-community
,例如graaljs-community-<version>-<os>-<arch>.tar.gz
。
每個組件和平台組合都有四種不同的配置:
運行時 | 執照 | 檔案中綴 |
---|---|---|
本國的 | GFTC | 沒有任何 |
虛擬機 | GFTC | -jvm |
本國的 | UPL | -community |
虛擬機 | UPL | -community-jvm |
若要獨立安裝 GraalJS,請從 GitHub 發布頁面下載並解壓縮存檔。安裝後, bin
子目錄中的js
或node
執行檔可分別用於執行JavaScript檔案或Node模組。如果命令列上未提供文件,則會產生互動式 shell (REPL)。
注意:如果您使用的是 macOS,請先從檔案中刪除隔離屬性:
shell sudo xattr -r -d com.apple.quarantine <archive>.tar.gz
GraalJS 可以運行未經修改的 Node.js 應用程式。 GraalVM 的 Node.js 運行時基於最新版本的 Node.js,並運行 GraalJS 引擎而不是 Google V8。它提供了與現有 NPM 套件的高度相容性。這包括具有本機實現的 NPM 套件。請注意,某些 NPM 模組可能需要使用 GraalJS 從原始程式碼重新編譯(如果它們附帶已為基於 V8 的 Node.js 編譯的二進位)。
Node.js 作為單獨的獨立發行版提供。了解如何開始使用 Node.js。
網站上提供了大量的使用者文件。此外,此儲存庫中的 docs 下還有供使用者和貢獻者使用的文件。如需貢獻,請另參閱有關如何從原始程式碼建立 GraalJS 的指南。
GraalJS 與 ECMAScript 2024 規範相容。計劃在未來版本中發布的新功能、新 ECMAScript 提案會經常添加,並且可以在選項後面存取。請參閱 CHANGELOG.md 以了解已通過的提案。
此外,還支援其他引擎的一些流行擴展。請參閱 GraalJS 相容性。
核心 JavaScript 引擎是 Java 應用程序,因此與提供與 JVM 相容的每個作業系統相容。請參閱在 Stock JDK 上執行 GraalJS。目前,我們提供二進位發行版,並在 Linux(x64、AArch64)、macOS(x64、AArch64)和 Windows(x64)上完全支援 GraalJS。
請參閱 graalvm.org/community 以了解如何與開發社群保持聯繫。 graalvm.slack.com 上的graaljs頻道是與 GraalJS 背後的團隊取得聯繫的好方法。在 oracle/graaljs GitHub 儲存庫報告任何 GraalJS 特定問題。
GraalJS 原始碼和社群發行版可根據通用授權許可 (UPL) 版本 1.0 取得。
非社群工件根據 GraalVM 免費條款和條件 (GFTC) 提供,包括早期採用者版本的授權。