Skip to content
forked from caoccao/Javet

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

License

Notifications You must be signed in to change notification settings

PROPRIETARYFIN/Javet

 
 

Repository files navigation

Javet

Maven Central Discord Donate

Linux Build Android Build

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 http://caoccao.blogspot.com/. And the official support channel is at discord.

💖 If you use Mac OS (x86_64), please be aware that the Mac OS (x86_64) build will discontinue anytime because my MacBook Air mid-2012 will be soon deprecated by new version of V8. Please donate to support me purchasing a new Mac OS (x86_64) device. Or, if you have a retired Mac OS (x86_64) device and are fine with mailing it to me, that will also be great. Thank you for supporting Javet.

💖 If you use Mac OS (arm64), please thank @longwa for building the M1 version. However, that's a temporary solution because I don't have any Mac OS (arm64) device, so there is no support. Please donate to support me purchasing a new Mac OS (arm64) device.

Major Features

  • Linux (x86_64) + Mac OS (x86_64, arm64) + ️Windows (x86_64)
  • Android (arm, arm64, x86 and x86_64)
  • Node.js v16.13.0 + V8 v9.6.180.8
  • 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

Quick Start

Dependency

Maven

<!-- Linux and Windows (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet</artifactId>
    <version>1.0.6</version>
</dependency>

<!-- Mac OS (x86_64 and arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-macos</artifactId>
    <version>1.0.6</version>
</dependency>

Gradle Kotlin DSL

implementation("com.caoccao.javet:javet:1.0.6") // Linux and Windows (x86_64)
implementation("com.caoccao.javet:javet-macos:1.0.6") // Mac OS (x86_64 and arm64)
implementation("com.caoccao.javet:javet-android:1.0.6") // Android (arm, arm64, x86 and x86_64)

Gradle Groovy DSL

implementation 'com.caoccao.javet:javet:1.0.6' // Linux and Windows (x86_64)
implementation 'com.caoccao.javet:javet-macos:1.0.6' // Mac OS (x86_64 and arm64)
implementation 'com.caoccao.javet:javet-android:1.0.6' // Android (arm, arm64, x86 and x86_64)

Hello Javet

// 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());
}

License

APACHE LICENSE, VERSION 2.0.

Documents

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 81.2%
  • C++ 13.7%
  • Python 1.2%
  • Dockerfile 1.0%
  • JavaScript 0.9%
  • CMake 0.8%
  • Other 1.2%