| Crates.io | keystone-standalone |
| lib.rs | keystone-standalone |
| version | 0.1.1 |
| created_at | 2025-07-24 12:08:09.461536+00 |
| updated_at | 2025-07-24 12:52:29.388684+00 |
| description | Standalone high-level bindings for Keystone assembler with embedded Keystone |
| homepage | |
| repository | https://github.com/EvansJahja/keystone-rs-standalone |
| max_upload_size | |
| id | 1765963 |
| size | 30,462 |
Yet another Rust binding for Keystone assembler framework.
Keystone is included as a submodule.
This is a fork from https://github.com/tathanhdinh/keystone-rs which does not seem to be maintained anymore.
Currently, this builds on Windows.
This project requires LLVM. Tested on Windows 10 with LLVM-18.1.8.
This project contains submodule, i.e.
git clone --recurse-submodules https://github.com/EvansJahja/keystone-rs-standalone.git
use keystone_standalone::*;
fn main() {
let engine = Keystone::from(Arch::X86, Mode::Bit32)
.expect("Unable to initialize Keystone engine");
engine.option(OptionType::Syntax, OptionValue::SyntaxNasm)
.expect("Unable to set NASM syntax");
let asm = engine.asm("mov ebp, esp", 0x4000)
.expect("Unable to assemble");
println!("{}", asm);
}
The original project uses the keystone crate. When using this project, you have two options:
keystone_standaloneCargo.toml and use rename dependency, i.e. keystone = { package = "keystone-standalone", version = "0.1.0" }