| Crates.io | hlbc |
| lib.rs | hlbc |
| version | 0.7.0 |
| created_at | 2022-05-21 15:22:01.421137+00 |
| updated_at | 2023-11-16 21:23:47.589525+00 |
| description | Hashlink bytecode disassembler and analyzer |
| homepage | |
| repository | https://github.com/Gui-Yom/hlbc |
| max_upload_size | |
| id | 590761 |
| size | 120,409 |
Hashlink bytecode disassembler and analyzer.
This crate is a library, see hlbc-cli for an actual program to use.
See CHANGELOG.md.
The decompiler is present in the hlbc-decompiler crate and is currently incomplete (and might never be 100% complete).
See the wiki for examples of decompilation output.
A wiki detailing the specifics of Hashlink bytecode is available here. The wiki also details the specifics of Haxe to hashlink compilation and decompilation.
This library is made in Rust, a C API is in the works which could permit using this lib in many other projects, but for now it is only Rust friendly.
Other alternatives include :
There are 98 different bytecode instructions, there is no way I manually write code for them. Most of the serialization code for these opcodes is generated through a proc macro (see hlbc-derive). Making that a declarative macro would probably turn out really hard. The only time I needed to write 98 different branches was for the formatting used when displaying the instructions (src/fmt.rs).