1 个不稳定版本
0.1.0 | 2024年7月5日 |
---|
#8 在 #jvm
每月105 次下载
54KB
1K SLoC
java-signatures
一个解析 Java 类/方法/字段签名的解析器,如 类文件格式 所描述,允许访问泛型类型信息。
有几个 rust crates 可以解析 Java 类文件并提供对签名的访问,尽管它们仅作为原始字符串提供。这个小库试图填补这个空白。
状态
所有 OpenJDK 21 的类、方法和字段签名都能正确解析。这意味着将解析形式再次序列化为签名会产生相同的字符串。
在此阶段,库正确地提供了对编码签名数据的结构化访问。虽然避免了解析字符串的副本,但尚未投入精力优化性能。
测试
除了嵌入式单元测试外,test/parse.rs
将获取 test//parse//**
以下的所有 .class
文件,使用 [cafebabe](https://github.com/staktrace/cafebabe)
提取它们的类/方法/字段签名字符串,使用 java-signatures
解析它们,并验证解析的签名是否正确序列回原始形式。为了保持仓库小,我们不会永久托管任何类文件。
替代方案
- cfsp 项目也提供了解析后的签名。与
java-signatures
不同,解析模型拥有类型信息/名称,因此分配,但可能更容易使用,因为它不会保留对原始解析字符串的引用。