quasilyte / go-jdk

Run JVM-based code in Go efficiently

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-jdk

Logo

go-jdk is OpenJDK-like implementation written in Go with a goal to deliver a great embeddable JVM for Go applications without CGo.

Key features:

  • JVM bytecode converted to register-based form
  • Loaded code is JIT-compiled right away, no run-time tracing involved
  • Efficient Go->JVM calls
  • Efficient JVM->Go calls
  • native Java methods can be written in Go

Note: this project is in its early state.

# Run Java class method (main or any other static method):
go-jdk run -class Foo.class -method helloWorld

# Disassemble Java class file with go-jdk:
go-jdk javap Foo.class

# Print IR representation instead of JVM bytecode:
go-jdk javap -format=ir Foo.class

# Print Java class dependencies:
go-jdk jdeps Foo.class

About

Run JVM-based code in Go efficiently


Languages

Language:Go 99.3%Language:Assembly 0.7%