3 releases (breaking)
0.2.0 | Jul 29, 2023 |
---|---|
0.1.0 | Jun 22, 2023 |
0.0.1 | Feb 8, 2023 |
#1389 in Development tools
22 downloads per month
160KB
117 lines
Ka-Pi
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:
cfsp
- A general purpose class file parser that transform class file into nodes described in The Java® Virtual Machine Specification Java SE 20 Edition
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.
Dependencies
~230KB