# unicorn-engine/unicorn

Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)

Repository: https://github.com/unicorn-engine/unicorn
Canonical: https://ross.abutalabs.com/products/unicorn
Homepage: http://www.unicorn-engine.org
Language: C
License: GPL-2.0
License Family: copyleft
Topics: emulator, framework, cpu, arm, arm64, mips, m68k, sparc, x86, x86-64, security, reverse-engineering, riscv, powerpc, s390x, systemz, tricore, cpu-emulator
Last push: 2026-07-30T16:17:57+00:00

## Health v2 (maintenance only)
Score: 75/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 95, release rhythm 35, longevity 100
- inputs: {"age_days": 4031, "days_push": 34, "days_rel": 358, "gap_med": 80.5, "n_releases_24m": 5}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 9268, forks 1532 (observed 2026-08-28T04:10:29.161545+00:00)

## What it is
Unicorn is a lightweight, multi-architecture CPU emulator framework based on QEMU, supporting ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390x, TriCore, and x86. It provides a clean architecture-neutral C API with bindings for many languages, JIT-based high performance, and fine-grained instrumentation hooks.

## Use cases
- emulate raw machine code without an OS or executable context
- build malware analysis and reverse-engineering tools
- fuzz firmware and binary code across CPU architectures
- instrument CPU execution and memory accesses with custom hooks
- emulate ARM or x86 shellcode in a security research script
- run multiple emulated CPU architectures concurrently in one process

## When to choose
- you need to emulate CPU instructions from raw binary code without a full system image
- you need multi-architecture support behind one architecture-neutral API
- you need dynamic instrumentation hooks on execution and memory events
- you need thread-safe emulation of multiple CPUs in one program
- you want bindings for Python, Rust, Go, Java, .NET, and more

## When to avoid
- you need to run a full operating system or emulate devices/peripherals - use QEMU instead
- you need a ready-made emulator application rather than an embeddable library
- you require a permissive license - Unicorn is GPLv2

## Facets
- artifact type: library
- maturity: stable
- function: simulation, security, reverse-engineering, developer-tools
- domain: security, reverse-engineering, developer-tools, simulation
- platform: windows, cross-platform, python, go, rust, jvm, dotnet, cpp, c
- tags: cpu-emulator, qemu-based, jit, instrumentation, multi-architecture, arm, x86, mips, riscv, fuzzing-support, linux, macos

## Member repositories
- unicorn-engine/unicorn (main) score 75

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:29.161545+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-29T17:22:38.167837+00:00, confidence not recorded.
  - readme: https://github.com/unicorn-engine/unicorn (fetched 2026-08-28T04:10:29.161545+00:00, sha c7e58da94d42)
  - homepage: http://www.unicorn-engine.org (fetched 2026-08-29T08:22:52.637027+00:00, sha 686d29cc682e)
  - site_page: https://www.unicorn-engine.org/docs (fetched 2026-08-29T08:22:52.640604+00:00, sha 3f8c23e16ae6)
  - site_page: https://www.unicorn-engine.org/docs/beyond_qemu.html (fetched 2026-08-29T08:22:52.642511+00:00, sha 33fc2d0659d9)
  - site_page: http://www.unicorn-engine.org/docs/tutorial.html (fetched 2026-08-29T08:22:52.646099+00:00, sha 943fb03ed4ac)
  - site_page: https://www.unicorn-engine.org/changelog (fetched 2026-08-29T08:22:52.644233+00:00, sha 69748bb2e9fe)
- Data as of 2026-08-30T08:39:29.467469+00:00.
