GraalJS는 GraalVM 위에 Java로 구현된 JavaScript 엔진입니다. JavaScript 및 Node.js 애플리케이션을 실행하는 ECMAScript 호환 런타임이며 Java와의 상호 운용성을 포함하여 GraalVM 스택의 모든 이점을 포함합니다. GraalJS는 오픈 소스 프로젝트입니다.
GraalJS의 목표는 다음과 같습니다.
버전 23.1.0부터 GraalJS는 Maven 아티팩트로 사용 가능합니다. 또한 JavaScript 및 Node.js 런타임의 독립형 배포판도 제공합니다.
GraalJS 덕분에 JavaScript를 Java 애플리케이션에 쉽게 포함할 수 있습니다. 필요한 모든 아티팩트는 Maven Central에서 직접 다운로드할 수 있습니다.
임베더와 관련된 모든 아티팩트는 Maven 종속성 그룹 org.graalvm.polyglot에서 찾을 수 있습니다.
다음은 pom.xml 에 복사할 수 있는 최소 Maven 종속성 설정입니다.
< 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 >
이를 통해 Oracle GraalVM 위에 구축되고 GraalVM 무료 이용 약관(GFTC)에 따라 라이선스가 부여되는 GraalJS가 활성화됩니다. GraalVM Community Edition에 구축된 GraalJS를 사용하려면 js-community
사용하세요.
다중 언어 격리 아티팩트(GFTC에만 해당)에 액세스하려면 -isolate
접미사를 대신 사용하세요(예: js-isolate
).
실행 가능한 전체 예제는 GitHub의 다중 언어 삽입 데모를 참조하세요.
GraalVM JDK, Oracle JDK 또는 OpenJDK와 함께 GraalJS를 사용할 수 있습니다. 기본 JVM에서 실행하는 것을 선호하는 경우 기본 JDK에서 GraalJS 실행을 살펴보세요. 이 모드에서는 GraalVM의 많은 기능과 최적화를 사용할 수 없습니다. 이러한 제한으로 인해 기본 JVM에서 실행하는 것은 지원되는 기능이 아닙니다. 대신 GraalVM을 사용하십시오.
독립 실행형 배포판은 GitHub에 게시됩니다. 선택할 수 있는 언어 런타임 옵션은 두 가지가 있습니다.
이를 구별하기 위해 JVM과 함께 제공되는 독립 실행형에는 이름에 -jvm
접미사가 있습니다. 또한 GraalVM Community Edition 버전의 이름에는 -community
가 있습니다(예: graaljs-community-
.
각 구성 요소 및 플랫폼 조합에 대해 네 가지 구성을 사용할 수 있습니다.
실행 시간 | 특허 | 아카이브 삽입물 |
---|---|---|
토종의 | GFTC | 없음 |
JVM | GFTC | -jvm |
토종의 | UPL | -community |
JVM | UPL | -community-jvm |
독립 실행형에서 GraalJS를 설치하려면 GitHub 릴리스 페이지에서 아카이브를 다운로드하고 추출하십시오. 설치 후 bin
하위 디렉터리에 있는 js
또는 node
실행 파일을 사용하여 각각 JavaScript 파일 또는 노드 모듈을 실행할 수 있습니다. 명령줄에 파일이 제공되지 않으면 대화형 셸(REPL)이 생성됩니다.
참고: macOS를 사용하는 경우 먼저 아카이브에서 격리 속성을 제거하십시오.
shell sudo xattr -r -d com.apple.quarantine
.tar.gz
GraalJS는 수정되지 않은 Node.js 애플리케이션을 실행할 수 있습니다. GraalVM의 Node.js 런타임은 최신 버전의 Node.js를 기반으로 하며 Google V8 대신 GraalJS 엔진을 실행합니다. 기존 NPM 패키지와 높은 호환성을 제공합니다. 여기에는 기본 구현이 포함된 NPM 패키지가 포함됩니다. 일부 NPM 모듈은 GraalJS를 사용하여 소스에서 다시 컴파일해야 할 수도 있습니다(V8 기반 Node.js용으로 컴파일된 바이너리와 함께 제공되는 경우).
Node.js는 별도의 독립형 배포판으로 제공됩니다. Node.js를 시작하는 방법을 알아보세요.
광범위한 사용자 문서는 웹사이트에서 이용 가능합니다. 또한 이 저장소에는 사용자와 기여자를 위한 문서가 문서 아래에 있습니다. 기여하려면 소스 코드에서 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(Universal Permissive License) 버전 1.0에 따라 제공됩니다.
비커뮤니티 아티팩트는 Early Adopter 버전에 대한 라이선스를 포함하여 GraalVM 무료 이용 약관(GFTC)에 따라 제공됩니다.