This is the core of Rise JVM.
Rise JVM is a Java Virtual Machine based on WASM, written in Go.
Tested under:
- Ubuntu 20.04
- OpenJDK javac 11.0.13
Just one line.
go test
Project structure:
.
├── LICENSE
├── README.md
├── demo
├── entity
├── go.mod
├── go.sum
├── jvm
├── loader
├── logger
├── main.go
├── main_test.go
├── rt
└── utils
Demo Java classes and their source code.
Class loader and related stuffs are here. They load bytes from class
file. The loader will convert these bytes into Go struct
.
This directory stores the definition of structures, and its methods. The methods are only related to the struct
, e.g. IsPublic
for Class
.
Other things like deserialization is not included.
VM and byte code execution engine.
Global logger. It should be initialized.
zserge/tojvm. Some snippets in loader
are from here. They are noted in comments.
This project is licensed under GPLv3.