espresso/README.md
Espresso is a full JVM capable of dynamic bytecode loading, written in Java using the Truffle framework. It can provide competitive performance when run on GraalVM.
It has some unique features:
Why implement a JVM in Java?
Espresso is a complete Java implementation which is kept up to date with the latest LTS JDK versions. When the VM is compiled to a native image it runs on Windows, macOS and Linux.
It features complete meta-circularity: it can run itself any amount of layers deep, preserving all the capabilities (Unsafe, JNI, Reflection...) of the base layer. Running HelloWorld on three nested layers of Espresso takes ~15 minutes.
The development of Espresso happens mostly on HotSpot, but this configuration (Espresso on HotSpot) is not equally supported on all platforms, see Limitations.
See the hacking notes.