ka-pi

Crates.ioka-pi
lib.rska-pi
version0.2.0
sourcesrc
created_at2023-02-08 17:48:13.633839
updated_at2023-07-29 16:40:59.30489
descriptionA JVM Bytecode Manipulation Framework inspired by ASM.
homepage
repositoryhttps://github.com/ChAoSUnItY/Ka-Pi/
max_upload_size
id780024
size6,612,538
ChAoS_UnItY (Kyle Lin) (ChAoSUnItY)

documentation

README

Ka-Pi

crates.io

A JVM Bytecode Manipulation Framework inspired by ASM.

Ka-Pi, known as coffee pronounced in Min Nan, which has multiple usages and an indispensable place in not only modern society, but also computer science.

Features

Ka-Pi offers several essential modules relates to JVM ecosystem:

Basic usages

Parse class file into structural nodes

To parse a class file using cfsp, you'll need to enable feature cfsp first:

ka_pi = { version = "...", features = ["cfsp"] }

Then, you'll be able to use class file parser in your own project:

# use std::fs::File;
# use cfsp::parse::{to_class, ParsingOption};

# fn main() {
  let mut file = File::open("Main.class").unwrap();
  let class = to_class(&mut file, ParsingOption::default().parse_attribute()).unwrap();
  
  println!("{:?}", class);
# }

See also

There are other related jvm projects developed by me may help the production of JVM projects along with Ka-Pi:

  • frape - A direct interop bridge between Rust and Java reflection library in low communication cost. (No releases yet.)
  • jars - A simple jar extraction library.

Author

Kyle Lin (ChAoS-UnItY)

License

Copyright © 2023, Kyle Lin (ChAoS-UnItY). Released under the MIT License.

Commit count: 551

cargo fmt