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.
CPU Arch | Android | Linux | MacOS | Windows |
---|---|---|---|---|
x86 | βοΈ | β | β | β |
x86_64 | βοΈ | βοΈ | βοΈ | βοΈ |
arm | βοΈ | β | β | β |
arm64 | βοΈ | βοΈ | βοΈ | β |
- Node.js
v22.9.0
+ V8v13.0.245.16
- Dynamic switch between Node.js and V8 mode
- 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
<!-- Linux and Windows (x86_64) -->
<dependency>
<groupId>com.caoccao.javet</groupId>
<artifactId>javet</artifactId>
<version>4.0.0</version>
</dependency>
<!-- Linux (arm64) -->
<dependency>
<groupId>com.caoccao.javet</groupId>
<artifactId>javet-linux-arm64</artifactId>
<version>4.0.0</version>
</dependency>
<!-- Mac OS (x86_64 and arm64) -->
<dependency>
<groupId>com.caoccao.javet</groupId>
<artifactId>javet-macos</artifactId>
<version>4.0.0</version>
</dependency>
implementation("com.caoccao.javet:javet:4.0.0") // Linux and Windows (x86_64)
implementation("com.caoccao.javet:javet-linux-arm64:4.0.0") // Linux (arm64)
implementation("com.caoccao.javet:javet-macos:4.0.0") // Mac OS (x86_64 and arm64)
implementation("com.caoccao.javet:javet-android-node:4.0.0") // Android Node (arm, arm64, x86 and x86_64)
implementation("com.caoccao.javet:javet-android-v8:4.0.0") // Android V8 (arm, arm64, x86 and x86_64)
implementation 'com.caoccao.javet:javet:4.0.0' // Linux and Windows (x86_64)
implementation 'com.caoccao.javet:javet-linux-arm64:4.0.0' // Linux (arm64)
implementation 'com.caoccao.javet:javet-macos:4.0.0' // Mac OS (x86_64 and arm64)
implementation 'com.caoccao.javet:javet-android-node:4.0.0' // Android Node (arm, arm64, x86 and x86_64)
implementation 'com.caoccao.javet:javet-android-v8:4.0.0' // Android V8 (arm, arm64, x86 and x86_64)
// 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());
}
- 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