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 解析器实现

Download history 4/week @ 2024-04-19 3/week @ 2024-05-17 2/week @ 2024-05-24 164/week @ 2024-06-07 12/week @ 2024-06-14 2/week @ 2024-06-21 2/week @ 2024-06-28 202/week @ 2024-07-19 202/week @ 2024-07-26 16/week @ 2024-08-02

每月420次 下载

MIT 许可证

430KB
11K SLoC

MokaPot

CI - GitHub Actions Codecov Crates.io docs.rs Contributor Covenant

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