# Keystone Assembler Engine

Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings

Repository: https://github.com/keystone-engine/keystone
Canonical: https://ross.abutalabs.com/products/keystone-assembler-engine
Homepage: http://www.keystone-engine.org
Language: C++
License: GPL-2.0
License Family: copyleft
Topics: assembler, framework, security, reverse-engineering, arm, arm64, x86, sparc, mips, powerpc, systemz, hexagon, x86-64
Last push: 2026-07-18T21:28:10+00:00
Link (homepage): http://www.keystone-engine.org

## Health v2 (maintenance only)
Score: 65/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 93, release rhythm 8, longevity 100
- inputs: {"age_days": 3779, "days_push": 46, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2625, forks 536 (observed 2026-08-28T04:07:05.231643+00:00)

## What it is
Keystone is a lightweight multi-platform, multi-architecture assembler framework implemented in C/C++ with bindings for many languages. It supports assembling instructions for Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ, X86, RISC-V, and Ethereum VM, and is based on LLVM.

## Use cases
- assemble machine code for arm64 from assembly text
- patch binary instructions during reverse engineering
- generate shellcode for x86-64 in a security tool
- assemble mips or powerpc instructions in an emulator or fuzzer
- integrate an assembler into a python or rust exploit-development toolkit
- assemble risc-v or evm instructions programmatically

## When to choose
- you need a lightweight, thread-safe assembler library with a simple architecture-neutral API
- you need multi-architecture assembly from C/C++ or via bindings in Python, Go, Rust, Java, and more
- you are building reverse-engineering, binary-patching, or exploit-development tooling

## When to avoid
- you need a full toolchain with linking and object-file output rather than instruction assembly
- you need a disassembler - use Capstone instead
- your project cannot accept GPL-2.0 licensing and you cannot obtain a commercial license

## Facets
- artifact type: library
- maturity: active
- function: compiler, security, reverse-engineering, developer-tools
- domain: security, reverse-engineering, developer-tools, compilers
- platform: windows, bsd, cross-platform, python, go, rust, jvm, dotnet, ruby
- tags: assembler, multi-architecture, llvm-based, arm, arm64, x86, mips, sparc, powerpc, risc-v, evm, hexagon, systemz, bindings, keystone, linux, macos, nodejs

## Member repositories
- keystone-engine/keystone (main) score 65
- keystone-engine/keypatch (plugin) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:05.231643+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:19:49.074443+00:00, confidence not recorded.
  - readme: https://github.com/keystone-engine/keystone (fetched 2026-08-28T04:07:05.231643+00:00, sha c84ce91bf8d2)
  - homepage: http://www.keystone-engine.org (fetched 2026-08-29T10:02:50.011202+00:00, sha 8b7f255aa401)
- Data as of 2026-08-30T08:39:29.467469+00:00.
