23 个版本 (14 个重大变更)
0.16.2 | 2024年7月29日 |
---|---|
0.15.0 | 2024年6月9日 |
0.13.0 | 2024年3月21日 |
0.8.0 | 2023年12月18日 |
0.6.0 | 2023年11月14日 |
#368 in 解析器实现
每月420次 下载
430KB
11K SLoC
MokaPot
MokaPot 是一个用 Rust 编写的 Java 字节码分析库。
[!WARNING] API 稳定性: 此项目处于早期开发阶段,在 v1.0.0 之前可能会发生破坏性更改。文档不完整,将在基本功能完成时添加。目前不建议在生产中使用此项目。
文档
已发布版本的文档可在 docs.rs 找到。最新提交的文档可在 github.io 找到。
使用方法
添加依赖项
在项目的根目录中运行以下命令。
cargo add mokapot
或者,为了跟随最新提交的版本,请运行以下命令。在构建项目之前,请运行 cargo update
以获取最新提交。
cargo add --git https://github.com/henryhchchc/mokapot.git mokapot
解析一个类
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 是 mokapot 中 JVM 字节码的中间表示。有关更多信息,请参阅 docs/MokaIR.md
构建
请确保已安装以下工具
- Rust 的最新稳定版本
- JDK 的最新发布版本
使用以下命令编译项目并运行测试。
cargo build --all-features
cargo test --all-features
贡献
酷。欢迎贡献。有关更多信息,请参阅 贡献指南。
依赖项
~3–11MB
~105K SLoC