24 releases (15 breaking)
0.17.0 | Sep 19, 2024 |
---|---|
0.16.2 | Jul 29, 2024 |
0.15.0 | Jun 9, 2024 |
0.13.0 | Mar 21, 2024 |
0.6.0 | Nov 14, 2023 |
#208 in Development tools
1,316 downloads per month
430KB
11K
SLoC
MokaPot
MokaPot is a Java bytecode analysis library written in Rust.
[!WARNING] API Stability: This project is in an early development stage and breaking changes can happen before v1.0.0. Using this project for production is currently NOT RECOMMENDED.
Documentation
The documentation of the released version is available at docs.rs. The documentation of the latest commit is available at github.io
Usage
Adding the dependency
Run the following command in the root directory of your project.
cargo add mokapot
Alternatively, to follow the latest commit version, run the following command instead.
Before building your project, run cargo update
to fetch the latest commit.
cargo add --git https://github.com/henryhchchc/mokapot.git mokapot
Parsing a class
use mokapot::jvm::class::Class;
fn parse_class() -> Result<Class, Box<dyn std::error::Error>> {
let reader: std::io::Read = todo!("Some reader for the byte code");
let class = Class::from_reader(reader)?;
Ok(class)
}
MokaIR
MokaIR is an intermediate representation of JVM bytecode in mokapot. To learn more, please refer to docs/MokaIR.md
Building
Make sure you have the following tools installed:
- The latest stable version of Rust
- The latest release version of JDK
Compile the project and run the tests with the following command.
cargo build --all-features
cargo test --all-features
Contributing
Cool. Contributions are welcomed. See the contribution guide for more information.
Dependencies
~3–10MB
~105K SLoC