Jvm old
Pure Rust implementation of the JVM 7 specification
A pure Rust implementation of the JVM 7 spec, with the main goals being to be able to eventually: The project is written primarily in Rust, distributed under the GNU General Public License v3.0 license, first published in 2020. Key topics include: bytecode, classloaders, java, jit, jited.
JVM-Rust
Warning! This crate is unsafe at the moment.
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.
Roadmap
-
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
Library Usage
Look in main.rs of the jvm_test crate for an example.
cargo run -p jvm_test -- --mode <i, stepper>
Unsafety
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.
Contributors
Showing top 2 contributors by commit count.
