#java #jvm #java-class #bytecode #classfile #read-write

ristretto_classfile

用于读取、写入和验证 Java 类文件的库

9 个版本 (重大更改)

新版本 0.7.0 2024 年 8 月 20 日
0.6.0 2024 年 8 月 15 日
0.5.0 2024 年 8 月 9 日
0.4.0 2024 年 7 月 26 日
0.1.0 2024 年 7 月 9 日

开发工具 中排名 435

Download history 278/week @ 2024-07-08 172/week @ 2024-07-15 243/week @ 2024-07-22 69/week @ 2024-07-29 116/week @ 2024-08-05 107/week @ 2024-08-12

每月下载 537
ristretto_classloader 中使用

Apache-2.0 或 MIT

550KB
13K SLoC

Ristretto ClassFile

ci Documentation Code Coverage Benchmarks Latest version License Semantic Versioning

入门指南

JVM 类文件格式实现,用于读取、写入和验证 Java 类。

支持读取和写入 Java 1 到 24 版本的类文件。类文件验证支持,但仍在开发中。

示例

use ristretto_classfile::{ClassFile, ConstantPool, Result, Version};

fn main() -> Result<()> {
    let mut constant_pool = ConstantPool::default();
    let this_class = constant_pool.add_class("Foo")?;
    let class_file = ClassFile {
        version: Version::Java21 { minor: 0 },
        constant_pool,
        this_class,
        ..Default::default()
    };
    class_file.verify()
}

安全性

这些 crate 使用 #![forbid(unsafe_code)] 确保所有内容都在 100% 安全的 Rust 中实现。

许可证

许可证为以下之一

贡献

除非您明确说明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,都应按上述方式双许可,不附加任何额外条款或条件。

VSCode Development Container
GitHub Codespaces

依赖项

~0.4–1MB
~22K SLoC