# Javet **Repository Path**: chenddcoder/Javet ## Basic Information - **Project Name**: Javet - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-01 - **Last Updated**: 2024-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Javet ===== |Maven Central| |Discord| |Donate| |Linux x86_64 Build| |MacOS x86_64 Build| |MacOS arm64 Build| |Android Node Build| |Android V8 Build| .. |Maven Central| image:: https://img.shields.io/maven-central/v/com.caoccao.javet/javet?style=for-the-badge :target: https://central.sonatype.com/search?q=g:com.caoccao.javet .. |Discord| image:: https://img.shields.io/discord/870518906115211305?label=join%20our%20Discord&style=for-the-badge :target: https://discord.gg/R4vvKU96gw .. |Donate| image:: https://img.shields.io/badge/Donate-green?style=for-the-badge :target: https://opencollective.com/javet .. |Linux x86_64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/linux_x86_64_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/linux_x86_64_build.yml .. |MacOS x86_64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/macos_x86_64_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/macos_x86_64_build.yml .. |MacOS arm64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/macos_arm64_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/macos_arm64_build.yml .. |Android Node Build| image:: https://github.com/caoccao/Javet/actions/workflows/android_node_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/android_node_build.yml .. |Android V8 Build| image:: https://github.com/caoccao/Javet/actions/workflows/android_v8_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/android_v8_build.yml `Javet `_ is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding Node.js and V8 in Java. If you like my work, please **Star** this project. And, you may follow me `@sjtucaocao `_, or visit https://blog.caoccao.com/ or https://caoccao.blogspot.com/. And the official support channel is at `discord `_. 💖 If you like my work, please `donate `_ to support me. If you have a retired Mac OS (x86_64) device and are fine with mailing it to me, that will be great because I don't have such device to support the community. Thank you for supporting Javet. Major Features ============== =========== ======= ======= ======= ======= CPU Arch Android Linux MacOS Windows =========== ======= ======= ======= ======= x86 ✔️ ❌ ❌ ❌ x86_64 ✔️ ✔️ ✔️ ✔️ arm ✔️ ❌ ❌ ❌ arm64 ✔️ ✔️ ✔️ ❌ =========== ======= ======= ======= ======= * Node.js ``v20.14.0`` + V8 ``v12.6.228.13`` * Dynamic switch between Node.js and V8 mode (`Which mode do you prefer? `_) * Polyfill V8 mode with `Javenode `_ * V8 API exposure in JVM * JavaScript and Java interop * Native BigInt and Date * Javet engine pool * Easy spring integration * Live debug with Chrome DevTools * AST analysis with `swc4j `_ * JS, TS, JSX, TSX transformation and transpilation with `swc4j `_ * Live interaction with `JavetShell `_ Quick Start =========== Dependency ---------- Maven ^^^^^ .. code-block:: xml com.caoccao.javet javet 3.1.3 com.caoccao.javet javet-linux-arm64 3.1.3 com.caoccao.javet javet-macos 3.1.3 Gradle Kotlin DSL ^^^^^^^^^^^^^^^^^ .. code-block:: kotlin implementation("com.caoccao.javet:javet:3.1.3") // Linux and Windows (x86_64) implementation("com.caoccao.javet:javet-linux-arm64:3.1.3") // Linux (arm64) implementation("com.caoccao.javet:javet-macos:3.1.3") // Mac OS (x86_64 and arm64) implementation("com.caoccao.javet:javet-android-node:3.1.3") // Android Node (arm, arm64, x86 and x86_64) implementation("com.caoccao.javet:javet-android-v8:3.1.3") // Android V8 (arm, arm64, x86 and x86_64) Gradle Groovy DSL ^^^^^^^^^^^^^^^^^ .. code-block:: groovy implementation 'com.caoccao.javet:javet:3.1.3' // Linux and Windows (x86_64) implementation 'com.caoccao.javet:javet-linux-arm64:3.1.3' // Linux (arm64) implementation 'com.caoccao.javet:javet-macos:3.1.3' // Mac OS (x86_64 and arm64) implementation 'com.caoccao.javet:javet-android-node:3.1.3' // Android Node (arm, arm64, x86 and x86_64) implementation 'com.caoccao.javet:javet-android-v8:3.1.3' // Android V8 (arm, arm64, x86 and x86_64) Hello Javet ----------- .. code-block:: java // Node.js Mode try (V8Runtime v8Runtime = V8Host.getNodeInstance().createV8Runtime()) { System.out.println(v8Runtime.getExecutor("'Hello Javet'").executeString()); } // V8 Mode try (V8Runtime v8Runtime = V8Host.getV8Instance().createV8Runtime()) { System.out.println(v8Runtime.getExecutor("'Hello Javet'").executeString()); } Sponsors ======== `HiveMQ `_ License ======= `APACHE LICENSE, VERSION 2.0 `_ Blog ==== * `Performance Comparison of GraalJS, Javet and Nashorn `_ * `How to Elegantly Expose JsonNode in V8 `_ * `How to Compromise V8 on JVM `_ * `Is TypeScript a Good Choice for a Script Engine? `_ * `Run TypeScript Directly in Java `_ Documents ========= * `Javet Intro `_ * `Javet Javadoc `_ * `Javet Document Portal `_