GraalJS adalah mesin JavaScript yang diimplementasikan di Java di atas GraalVM. Ini adalah runtime yang sesuai dengan ECMAScript untuk menjalankan aplikasi JavaScript dan Node.js, dan mencakup semua manfaat dari tumpukan GraalVM termasuk interoperabilitas dengan Java. GraalJS adalah proyek sumber terbuka.
Tujuan dari GraalJS adalah:
Pada versi 23.1.0, GraalJS tersedia sebagai artefak Maven. Kami juga menyediakan distribusi runtime JavaScript dan Node.js yang berdiri sendiri.
Berkat GraalJS, Anda dapat dengan mudah menyematkan JavaScript ke dalam aplikasi Java. Semua artefak yang diperlukan dapat diunduh langsung dari Maven Central.
Semua artefak yang relevan dengan penyemat dapat ditemukan di grup ketergantungan Maven org.graalvm.polyglot.
Di bawah ini adalah pengaturan ketergantungan Maven minimal yang dapat Anda salin ke pom.xml Anda :
< 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 >
Hal ini mengaktifkan GraalJS yang dibangun di atas Oracle GraalVM dan dilisensikan berdasarkan Syarat dan Ketentuan Gratis GraalVM (GFTC). Gunakan js-community
jika Anda ingin menggunakan GraalJS yang dibangun di GraalVM Community Edition.
Untuk mengakses artefak isolasi poliglot (khusus GFTC), gunakan akhiran -isolate
(misalnya js-isolate
).
Lihat demonstrasi penyematan poliglot di GitHub untuk contoh lengkap yang dapat dijalankan.
Anda dapat menggunakan GraalJS dengan GraalVM JDK, Oracle JDK, atau OpenJDK. Jika Anda lebih suka menjalankan JVM stok, lihat Jalankan GraalJS di Stock JDK. Perhatikan bahwa dalam mode ini banyak fitur dan optimalisasi GraalVM tidak tersedia. Karena keterbatasan tersebut, menjalankan JVM bawaan bukanlah fitur yang didukung - harap gunakan GraalVM sebagai gantinya.
Distribusi mandiri dipublikasikan di GitHub. Ada dua opsi runtime bahasa yang dapat dipilih:
Untuk membedakannya, standalone yang hadir dengan JVM memiliki infiks -jvm
pada namanya. Selain itu, versi GraalVM Community Edition memiliki nama -community
, misalnya graaljs-community-
.
Empat konfigurasi berbeda tersedia untuk setiap kombinasi komponen dan platform:
Waktu proses | Lisensi | Infiks Arsip |
---|---|---|
Warga asli | GFTC | tidak ada |
JVM | GFTC | -jvm |
Warga asli | UPL | -community |
JVM | UPL | -community-jvm |
Untuk menginstal GraalJS dari versi mandiri, unduh dan ekstrak arsip dari halaman Rilis GitHub. Setelah instalasi, js
atau node
yang dapat dieksekusi di subdirektori bin
dapat digunakan untuk menjalankan file JavaScript atau modul Node. Jika tidak ada file yang disediakan pada baris perintah, shell interaktif (REPL) akan muncul.
Catatan: Jika Anda menggunakan macOS, hapus dulu atribut karantina dari arsip:
shell sudo xattr -r -d com.apple.quarantine
.tar.gz
GraalJS dapat menjalankan aplikasi Node.js yang tidak dimodifikasi. Waktu proses Node.js GraalVM didasarkan pada versi terbaru Node.js, dan menjalankan mesin GraalJS, bukan Google V8. Ini memberikan kompatibilitas tinggi dengan paket NPM yang ada. Ini termasuk paket NPM dengan implementasi asli. Perhatikan bahwa beberapa modul NPM mungkin perlu dikompilasi ulang dari sumber dengan GraalJS (jika dikirimkan dengan binari yang telah dikompilasi untuk Node.js berdasarkan V8).
Node.js tersedia sebagai distribusi mandiri yang terpisah. Lihat cara memulai dengan Node.js.
Dokumentasi pengguna yang luas tersedia di situs web. Selain itu, terdapat dokumentasi dalam repositori ini di bawah dokumen, untuk pengguna dan kontributor. Untuk berkontribusi, lihat juga panduan cara membuat GraalJS dari kode sumber.
GraalJS kompatibel dengan spesifikasi ECMAScript 2024. Fitur-fitur baru, proposal ECMAScript baru, yang dijadwalkan untuk hadir di edisi mendatang, sering ditambahkan dan dapat diakses melalui sebuah opsi. Lihat CHANGELOG.md untuk proposal yang telah diadopsi.
Selain itu, beberapa ekstensi populer dari mesin lain juga didukung. Lihat Kompatibilitas GraalJS.
Mesin inti JavaScript adalah aplikasi Java dan karenanya kompatibel dengan setiap sistem operasi yang menyediakan JVM yang kompatibel. Lihat Menjalankan GraalJS di Stock JDK. Kami menyediakan distribusi biner dan mendukung penuh GraalJS di Linux (x64, AArch64), macOS (x64, AArch64), dan Windows (x64), saat ini.
Lihat graalvm.org/community untuk mengetahui cara tetap terhubung dengan komunitas pembangunan. Saluran graaljs di graalvm.slack.com adalah cara yang baik untuk berhubungan dengan tim di belakang GraalJS. Laporkan masalah khusus GraalJS apa pun di repositori GitHub Oracle/graaljs.
Kode sumber GraalJS dan distribusi komunitas tersedia di bawah Lisensi Permisif Universal (UPL), Versi 1.0.
Artefak non-komunitas disediakan berdasarkan Syarat dan Ketentuan Gratis GraalVM (GFTC) termasuk Lisensi untuk Versi Pengguna Awal.