java_asm 0.0.6

Java bytecode reader & writer in rust
Documentation

java-asm

Crates.io Version

Java bytecode reader & writer, maybe a rust implementation for ASM

There are some similar projects in GitHub, but they didn't actually implement all JVM Bytecode format, and also not implements all ASM nodes/features in rust. So I want to build this library to fully read and write Java bytecode information.

This project supports much newer LTS Java version(Java 21 currently) than other rust implementations. Only supports asm-tree api currently, not supports visitor api because Tree API is much easier to use than visitor api.

Current Stage

After version 0.0.6, you can try to use ClassNode::from_jvms to read a class file into a ClassNode, and it is pretty useful to now, check tests in this project to see some examples.

  • Implement Read Java class file with JVMS format
  • Implement Write Java class file with JVMS format
  • WIP, ClassNode reader
    • Constant pool
    • Attributes
    • Class / Field / Method metadata
    • Method instructions
    • Method frames
    • Method local variables / stacks / try-catches
  • Not Start, Nodes writer
  • Not Start, Implement ASM features (eg. auto calculate frame/stack etc.)

Some similar projects: