A pure Rust implementation of the JVM 7 spec, with the main goals being to be able to eventually:
- Run the OpenJDK 7 Java source
- Have a Cranelift-backed JIT, and an AOT WASM compiler.
-
Deserialize Java 7 classes
-
Type-checking of bytecode (!)
-
Get basic bytecode running
-
Get heap allocation and object creation working
-
Improve stability
-
Monitors and error handling
-
Fully implement all bytecode
-
Get the OpenJDK 7 source to load and run.
-
Stop-the-world GC
-
Bytecode metrics
-
Cranelift JIT
-
Concurrent GC
-
Ahead-of-time WASM compiler
Look in main.rs of the jvm_test crate for an example.
cargo run -p jvm_test -- --mode <i, stepper>
This library is under heavy development, and as such is very unstable and unsafe(!) to use. The main issues arise from the fact that executed bytecode is not currently type-checked.
TLDR: don't use this for anything important, nor on anything you don't trust.