caoccao/Javet

Javet is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding Node.js and V8 in Java.

Java

968

161 commits

updated Oct 4, 2026

See the code

README

Javet
=====

|Maven Central| |Discord| |Donate|

|Linux x86_64 Build| |MacOS x86_64 Build| |MacOS arm64 Build| |Windows x86_64 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

.. |Windows x86_64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/windows_x86_64_build.yml/badge.svg
    :target: https://github.com/caoccao/Javet/actions/workflows/windows_x86_64_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 <https://github.com/caoccao/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 <https://twitter.com/sjtucaocao>`_, or visit https://blog.caoccao.com/ or https://caoccao.blogspot.com/. And the official support channel is at `discord <https://discord.gg/R4vvKU96gw>`_.

💖 If you like my work, please `donate <https://opencollective.com/javet>`_ to support me. By the way, I'm no longer able to renew my JetBrains open-source license with this project. Thank you for supporting Javet.

Major Features
==============

=========== ======= ======= ======= =======
CPU Arch    Android Linux   MacOS   Windows
=========== ======= ======= ======= =======
x86         ✔️        ❌      ❌       ❌
x86_64      ✔️        ✔️       ✔️        ✔️
arm         ✔️        ❌      ❌       ❌
arm64       ✔️        ✔️       ✔️        ❌
=========== ======= ======= ======= =======

* Node.js ``v26.10.0`` + V8 ``v15.5.35.14``
* i18n and non-i18n
* Dynamic switch between Node.js and V8 mode
* Polyfill V8 mode with `Javenode <https://github.com/caoccao/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 <https://github.com/caoccao/swc4j>`_
* JS, TS, JSX, TSX transformation and transpilation with `swc4j <https://github.com/caoccao/swc4j>`_
* Enhance JVM via Byte-code with `JavetBuddy <https://github.com/caoccao/JavetBuddy>`_
* Live interaction with `JavetShell <https://github.com/caoccao/JavetShell>`_

Quick Start
===========

Dependency
----------

Maven
^^^^^

.. code-block:: xml

    <!-- Core (Must-have) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Linux (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Linux (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Mac OS (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Mac OS (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Windows (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-windows-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Linux (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Linux (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Mac OS (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Mac OS (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Windows (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-windows-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

Gradle Kotlin DSL
^^^^^^^^^^^^^^^^^

.. code-block:: kotlin

    implementation("com.caoccao.javet:javet:6.0.2") // Core (Must-have)
    implementation("com.caoccao.javet:javet-node-linux-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-node-linux-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-node-macos-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-node-macos-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-node-windows-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-linux-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-linux-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-macos-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-macos-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-windows-x86_64:6.0.2")

Gradle Groovy DSL
^^^^^^^^^^^^^^^^^

.. code-block:: groovy

    implementation 'com.caoccao.javet:javet:6.0.2' // Core (Must-have)
    implementation 'com.caoccao.javet:javet-node-linux-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-linux-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-macos-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-macos-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-windows-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-linux-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-linux-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-macos-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-macos-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-windows-x86_64:6.0.2'

For more detail, please visit the `installation <https://www.caoccao.com/Javet/tutorial/basic/installation.html>`_ page.

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 <https://www.hivemq.com/>`_ | `SheetJS <https://www.sheetjs.com/>`_ | `momen.app <https://momen.app/>`_

License
=======

`APACHE LICENSE, VERSION 2.0 <https://github.com/caoccao/Javet/blob/main/LICENSE>`_

Blog
====

* `Performance Comparison of GraalJS, Javet and Nashorn <https://blog.caoccao.com/performance-comparison-of-graaljs-javet-and-nashorn-7bae6925826a>`_
* `How to Elegantly Expose JsonNode in V8 <https://blog.caoccao.com/how-to-elegantly-expose-jsonnode-in-v8-638aff9da549>`_
* `How to Compromise V8 on JVM <https://blog.caoccao.com/how-to-compromise-v8-on-jvm-ceb385572461>`_
* `Is TypeScript a Good Choice for a Script Engine? <https://blog.caoccao.com/is-typescript-a-good-choice-for-a-script-engine-01fe69921ace>`_
* `Run TypeScript Directly in Java <https://blog.caoccao.com/run-typescript-directly-in-java-82b7003b44b8>`_
* `SSR — React + Spring Boot with Javet <https://blog.caoccao.com/ssr-react-spring-boot-with-javet-536282ff0edb>`_
* `What does V8 Sandbox Really Mean in Javet <https://blog.caoccao.com/what-does-v8-sandbox-really-mean-in-javet-dc0072846b8b>`_

Documents
=========

* `Javet Intro <https://docs.google.com/presentation/d/1lQ8xIHuywuE0ydqm2w6xq8OeQZO_WeTLYXW9bNflQb8/>`_
* `Javet Javadoc <https://www.caoccao.com/Javet/reference/javadoc/index.html>`_
* `Javet Document Portal <https://www.caoccao.com/Javet/>`_

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

android
engine
java
javascript
java-v8
javet
linux
macos
nodejs
v8
v8-javascript-engine
windows

caoccao/Javet

Javet is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding Node.js and V8 in Java.

Java

968

161 commits

updated Oct 4, 2026

See the code

README

Javet
=====

|Maven Central| |Discord| |Donate|

|Linux x86_64 Build| |MacOS x86_64 Build| |MacOS arm64 Build| |Windows x86_64 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

.. |Windows x86_64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/windows_x86_64_build.yml/badge.svg
    :target: https://github.com/caoccao/Javet/actions/workflows/windows_x86_64_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 <https://github.com/caoccao/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 <https://twitter.com/sjtucaocao>`_, or visit https://blog.caoccao.com/ or https://caoccao.blogspot.com/. And the official support channel is at `discord <https://discord.gg/R4vvKU96gw>`_.

💖 If you like my work, please `donate <https://opencollective.com/javet>`_ to support me. By the way, I'm no longer able to renew my JetBrains open-source license with this project. Thank you for supporting Javet.

Major Features
==============

=========== ======= ======= ======= =======
CPU Arch    Android Linux   MacOS   Windows
=========== ======= ======= ======= =======
x86         ✔️        ❌      ❌       ❌
x86_64      ✔️        ✔️       ✔️        ✔️
arm         ✔️        ❌      ❌       ❌
arm64       ✔️        ✔️       ✔️        ❌
=========== ======= ======= ======= =======

* Node.js ``v26.10.0`` + V8 ``v15.5.35.14``
* i18n and non-i18n
* Dynamic switch between Node.js and V8 mode
* Polyfill V8 mode with `Javenode <https://github.com/caoccao/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 <https://github.com/caoccao/swc4j>`_
* JS, TS, JSX, TSX transformation and transpilation with `swc4j <https://github.com/caoccao/swc4j>`_
* Enhance JVM via Byte-code with `JavetBuddy <https://github.com/caoccao/JavetBuddy>`_
* Live interaction with `JavetShell <https://github.com/caoccao/JavetShell>`_

Quick Start
===========

Dependency
----------

Maven
^^^^^

.. code-block:: xml

    <!-- Core (Must-have) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Linux (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Linux (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Mac OS (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Mac OS (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- Node.js Windows (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-windows-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Linux (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Linux (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Mac OS (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Mac OS (arm64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-arm64</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!-- V8 Windows (x86_64) -->
    <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-windows-x86_64</artifactId>
        <version>6.0.2</version>
    </dependency>

Gradle Kotlin DSL
^^^^^^^^^^^^^^^^^

.. code-block:: kotlin

    implementation("com.caoccao.javet:javet:6.0.2") // Core (Must-have)
    implementation("com.caoccao.javet:javet-node-linux-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-node-linux-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-node-macos-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-node-macos-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-node-windows-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-linux-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-linux-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-macos-arm64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-macos-x86_64:6.0.2")
    implementation("com.caoccao.javet:javet-v8-windows-x86_64:6.0.2")

Gradle Groovy DSL
^^^^^^^^^^^^^^^^^

.. code-block:: groovy

    implementation 'com.caoccao.javet:javet:6.0.2' // Core (Must-have)
    implementation 'com.caoccao.javet:javet-node-linux-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-linux-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-macos-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-macos-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-node-windows-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-linux-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-linux-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-macos-arm64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-macos-x86_64:6.0.2'
    implementation 'com.caoccao.javet:javet-v8-windows-x86_64:6.0.2'

For more detail, please visit the `installation <https://www.caoccao.com/Javet/tutorial/basic/installation.html>`_ page.

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 <https://www.hivemq.com/>`_ | `SheetJS <https://www.sheetjs.com/>`_ | `momen.app <https://momen.app/>`_

License
=======

`APACHE LICENSE, VERSION 2.0 <https://github.com/caoccao/Javet/blob/main/LICENSE>`_

Blog
====

* `Performance Comparison of GraalJS, Javet and Nashorn <https://blog.caoccao.com/performance-comparison-of-graaljs-javet-and-nashorn-7bae6925826a>`_
* `How to Elegantly Expose JsonNode in V8 <https://blog.caoccao.com/how-to-elegantly-expose-jsonnode-in-v8-638aff9da549>`_
* `How to Compromise V8 on JVM <https://blog.caoccao.com/how-to-compromise-v8-on-jvm-ceb385572461>`_
* `Is TypeScript a Good Choice for a Script Engine? <https://blog.caoccao.com/is-typescript-a-good-choice-for-a-script-engine-01fe69921ace>`_
* `Run TypeScript Directly in Java <https://blog.caoccao.com/run-typescript-directly-in-java-82b7003b44b8>`_
* `SSR — React + Spring Boot with Javet <https://blog.caoccao.com/ssr-react-spring-boot-with-javet-536282ff0edb>`_
* `What does V8 Sandbox Really Mean in Javet <https://blog.caoccao.com/what-does-v8-sandbox-really-mean-in-javet-dc0072846b8b>`_

Documents
=========

* `Javet Intro <https://docs.google.com/presentation/d/1lQ8xIHuywuE0ydqm2w6xq8OeQZO_WeTLYXW9bNflQb8/>`_
* `Javet Javadoc <https://www.caoccao.com/Javet/reference/javadoc/index.html>`_
* `Javet Document Portal <https://www.caoccao.com/Javet/>`_

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

android
engine
java
javascript
java-v8
javet
linux
macos
nodejs
v8
v8-javascript-engine
windows

Project health

Latest release

6.0.2 · Oct 5, 2026

Releases this year

14

Significant stargazers

Josh Soref

808 followers · starred Jun 2025

Joaquín Sánchez

568 followers · starred Jul 2021

Artem Kobzar

383 followers · starred Jun 2025

r33drichards

34 followers · starred Apr 2026