ristretto

Crates for the JVM Specification

APACHE-2.0 License

Downloads
4.4K
Stars
2

Ristretto

JVM implementation with deterministic memory deallocation.

This is a work in progress and is not ready for production use.

Getting Started

ristretto java can be installed using the following methods:

Linux / MacOS

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/theseus-rs/ristretto/releases/latest/download/ristretto_cli-installer.sh | sh

Windows

irm https://github.com/theseus-rs/ristretto/releases/latest/download/ristretto_cli-installer.ps1 | iex

For more information, and additional installations instructions (cargo, homebrew, msi), visit the ristretto site.

Features

  • Deterministic memory allocation / deallocation
  • No tracing garbage collector
  • Loading classes from any version of AWS Corretto
  • Load classes from directories, jars, modules
  • Url class loading from jars and modules
  • Reading, writing, verifying classes for any version of Java version up to 24
  • Verification of class files is supported, but is still a work in progress.

Limitations

  • Instructions Athrow, Multianewarray and Invokedynamic are not implemented
  • Exceptions are not implemented
  • Threading is not implemented
  • Numerous JDK native methods are not implemented
  • Finalizers are not implemented
  • JNI is not implemented
  • JIT is not implemented
  • No Security manager; see: JEP 411

Safety

These crates use #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.