skillfed

keystone-engine

Keystone assembler engine

keystone-engine v0.9.2 181.4K downloads/30d#10,127 on PyPI
Permissive license Abandoned released

What it is and what it does

Keystone is a multi-platform assembler framework that converts assembly language into machine code for a wide range of CPU architectures. It provides a simple, architecture-neutral API and is implemented in C/C++ with Python bindings, making it suitable for tools that need to generate or analyze machine code across different processors.

The package is thread-safe and supports Arm, Arm64, Ethereum Virtual Machine, Hexagon, Mips, PowerPC, Sparc, SystemZ, and X86 (16/32/64-bit variants). However, the project is no longer maintained—the last release was in 2020—so users should expect no bug fixes, security patches, or compatibility updates for newer Python or operating system versions.

Use it for:

  • Generate machine code for reverse-engineering tools or binary analysis frameworks that need to assemble instructions across multiple architectures.
  • Build emulators or virtual machines that require dynamic code generation for different CPU instruction sets.
  • Create security research tools that analyze or synthesize assembly code for different processors.
  • Develop compiler backends or code generation utilities that target multiple architectures from a single codebase.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Keystone is a lightweight assembler framework that translates assembly code into machine instructions across multiple CPU architectures including Arm, Arm64, Mips, PowerPC, Sparc, SystemZ, X86, and others.

No, unless you have a specific legacy project already using it. The package is abandoned (last release 2020-06-21) with no maintenance or security updates. GPLv2 licensing also restricts commercial use unless you purchase a separate license. For new projects, consider actively maintained alternatives.

Install

keystone-engine on PyPI

pip

pip install keystone-engine

uv

uv add keystone-engine

poetry

poetry add keystone-engine

Installing keystone-engine

Before you install

Medium install friction due to binary wheels for multiple platforms (macOS, Linux, Windows, 32/64-bit). However, the package is abandoned—last release was 2020-06-21, over 2245 days ago—so no maintenance or security updates are forthcoming.

License in practice

Licensed under GPLv2 (without 'any later version' clause) or a commercial license. GPLv2 requires derivative works to be open source; commercial use in production requires purchasing a separate license from the authors.

Quickstart

from keystone import Ks, KS_ARCH_X86, KS_MODE_32

ks = Ks(KS_ARCH_X86, KS_MODE_32)
encoding, count = ks.asm("mov eax, ebx")
print(encoding)

Requires the native Keystone C library to be installed on the system; pre-built wheels are provided for common platforms but may not work on all architectures or systems.

Verify before relying

  • Whether the package works reliably on modern Python versions given its abandonment status.
  • Whether pre-built wheels are still compatible with current operating system versions.
  • Whether the GPLv2 license restriction applies to your use case or if a commercial license is needed.

Package facts

License not declared (permissive)
Python support not specified
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance abandoned — 2,245 days since the last release
First released
Downloads 181,360/month — #10,127 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: keystone_engine-0.9.2-py2.py3-none-macosx_10_14_x86_64.whl; keystone_engine-0.9.2-py2.py3-none-manylinux1_i686.whl; keystone_engine-0.9.2-py2.py3-none-manylinux1_x86_64.whl; keystone_engine-0.9.2-py2.py3-none-win32.whl; keystone_engine-0.9.2-py2.py3-none-win_amd64.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 2Programming Language :: Python :: 3Topic :: Software Development :: Build Tools

Tags

multi-architecture assemblerassembly to machine codecross-platform assembler frameworkarm x86 mips assemblerbytecode generation assembler
assemblermulti-architectureabandoned

More Build Tools packages