Skip to content
This repository has been archived by the owner on Jun 10, 2023. It is now read-only.
/ jvm-old Public archive

Pure Rust implementation of the JVM 7 specification

License

Notifications You must be signed in to change notification settings

birbe/jvm-old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JVM-Rust

badge 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.

Releases

No releases published

Packages

No packages published

Languages