Skip to content

theseus-rs/ristretto

Ristretto

ci Documentation Code Coverage Benchmarks Latest version License Semantic Versioning

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
  • Runtime classes based on any version of AWS Corretto
  • Load classes from directories, jars, modules
  • Url class loading from jars and modules
  • Reading, writing, verifying classes
  • Verification of class files is supported, but is still a work in progress.

Limitations

  • The Invokedynamic instruction is 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.

VSCode Development Container
GitHub Codespaces