1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! # Ristretto `ClassLoader`
//!
//! [](https://codecov.io/gh/theseus-rs/ristretto)
//! [](https://bencher.dev/perf/theseus-rs-ristretto)
//! [](https://github.com/theseus-rs/ristretto#license)
//! [](https://semver.org/spec/v2.0.0.html)
//!
//! Implementation of a [JVM Class Loader](https://docs.oracle.com/javase/specs/jvms/se25/html/jvms-4.html)
//! that is used to load Java classes. Classes can be loaded from the file system or from a URL;
//! jar and modules are supported. A runtime Java class loader can be created from a LTS version of
//! [AWS Corretto](https://github.com/corretto). The runtime class loader will download and install
//! the requested version of Corretto and create a class loader that can be used to load Java
//! classes.
//!
//! The AWS Corretto runtime is installed in the following directory:
//!
//! - Unix: `$HOME/.ristretto/<version>`
//! - Windows: `%USERPROFILE%\.ristretto\<version>`
//!
//! # Examples
//!
//! ```rust
//! use ristretto_classloader::{runtime, ClassLoader, Result};
//! use std::sync::Arc;
//!
//! #[tokio::main]
//! async fn main() -> Result<()> {
//! let (_java_home, java_version, class_loader) = runtime::version_class_loader("21").await?;
//! let class_name = "java.util.HashMap";
//! println!("Loading {class_name} from Java version {java_version}");
//! let class = class_loader.load(class_name).await?;
//! println!("{class:?}");
//! Ok(())
//! }
//! ```
//!
//! ## Feature flags
//!
//! The following features are available:
//!
//! | Name | Description | Default? |
//! |-----------|--------------------------------|----------|
//! | `url` | Enables url class path entries | No |
pub use ;
pub use ClassLoader;
pub use ClassPath;
pub use ;
pub use ;
pub use Field;
pub use Method;
pub use Object;
pub use ;
pub use ;
pub use ;
pub use Value;