Skip to main content

Unicorn

Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework based on QEMU.

Unicorn offers some unparalleled features:

  • Multi-architecture: ARM, ARM64 (ARMv8), M68K, MIPS, PowerPC, RISCV, SPARC, S390X, TriCore and X86 (16, 32, 64-bit)
  • Clean/simple/lightweight/intuitive architecture-neutral API
  • Implemented in pure C language, with bindings for Crystal, Clojure, Visual Basic, Perl, Rust, Ruby, Python, Java, .NET, Go, Delphi/Free Pascal, Haskell, Pharo, and Lua.
  • Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed)
  • High performance via Just-In-Time compilation
  • Support for fine-grained instrumentation at various levels
  • Thread-safety by design
  • Distributed under free software license GPLv2

Further information is available at http://www.unicorn-engine.org

Python Bindings for Unicorn

Originally written by Nguyen Anh Quynh, polished and redesigned by elicn, maintained by all community contributors.

Install

Install a prebuilt wheel from PyPI:

python3 -m pip install unicorn

In case you would like to develop the bindings:

DEBUG=1 THREADS=4 python3 -m pip install --user -e .
# Workaround for Pylance
DEBUG=1 THREADS=4 python3 -m pip install --user -e . --config-settings editable_mode=strict

or install it by building it by yourself:

THREADS=4 python3 -m pip install --user .

Explanations for arguments:

  • THREADS=4 will use 4 threads for building.
  • DEBUG=1 will build debug version of unicorn.
  • --user will install the bindings to your user directory instead of requiring root permission.
  • -e infers the editable mode, which gives your instant feedback instead of re-compiling every time.

Note that you should setup a valid building environment according to docs/COMPILE.md but not necessarily build it because setup.py will do this for you.

Python2 compatibility

By default, Unicorn python bindings works with Python3.7 and above, as it offers more powerful features which improves developing efficiency compared to Python2. However, Unicorn will only keep compatible with all features Unicorn1 offers regarding Python2 because it has reached end-of-life for more than 3 years at the time of writing this README. While offering all features for both Python2 & Python3 is desirable and doable, it inevitably costs too much efforts to maintain and few users really rely on this. Therefore, we assume that if users still stick to Python2, previous Unicorn1 features should be enough. If you really want some new features Unicorn2 offers, please check and pull request to unicorn/unicorn_py2. We are happy to review and accept! Even though the build of wheel packages requires Python3, it's still possible to re-tag the wheel produced from Python3 with py2 tag and then run python2 -m pip install <retagged-wheel-py>. For detailed commands please refer to our workflow files.

Metadata

Release files for unicorn 2.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unicorn 2.1.4
File Size Uploaded
unicorn-2.1.4.tar.gz 2.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for unicorn 2.1.4
File
unicorn-2.1.4-py2-none-win_amd64.whl Python 2 none Windows x86-64 Details
unicorn-2.1.4-py2-none-win32.whl Python 2 none Windows x86-32 Details
unicorn-2.1.4-py2-none-musllinux_1_2_x86_64.whl Python 2 none Linux musl 1.2+ x86-64 Details
unicorn-2.1.4-py2-none-musllinux_1_2_i686.whl Python 2 none Linux musl 1.2+ x86-32 Details
unicorn-2.1.4-py2-none-musllinux_1_2_aarch64.whl Python 2 none Linux musl 1.2+ ARM64 Details
unicorn-2.1.4-py2-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl Python 2 none Linux glibc 2.17+ x86-64 Details
unicorn-2.1.4-py2-none-manylinux2014_i686.manylinux_2_17_i686.whl Python 2 none Linux glibc 2.17+ x86-32 Details
unicorn-2.1.4-py2-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl Python 2 none Linux glibc 2.17+ ARM64 Details
unicorn-2.1.4-py2-none-macosx_11_0_arm64.whl Python 2 none macOS 11.0+ ARM64 Details
unicorn-2.1.4-py2-none-macosx_10_9_x86_64.whl Python 2 none macOS 10.9+ x86-64 Details
unicorn-2.1.4-cp37-abi3-win_amd64.whl CPython 3.7 abi3 Windows x86-64 Details
unicorn-2.1.4-cp37-abi3-win32.whl CPython 3.7 abi3 Windows x86-32 Details
unicorn-2.1.4-cp37-abi3-musllinux_1_2_x86_64.whl CPython 3.7 abi3 Linux musl 1.2+ x86-64 Details
unicorn-2.1.4-cp37-abi3-musllinux_1_2_i686.whl CPython 3.7 abi3 Linux musl 1.2+ x86-32 Details
unicorn-2.1.4-cp37-abi3-musllinux_1_2_aarch64.whl CPython 3.7 abi3 Linux musl 1.2+ ARM64 Details
unicorn-2.1.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 abi3 Linux glibc 2.17+ x86-64 Details
unicorn-2.1.4-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.7 abi3 Linux glibc 2.17+ x86-32 Details
unicorn-2.1.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.7 abi3 Linux glibc 2.17+ ARM64 Details
unicorn-2.1.4-cp37-abi3-macosx_11_0_arm64.whl CPython 3.7 abi3 macOS 11.0+ ARM64 Details
unicorn-2.1.4-cp37-abi3-macosx_10_9_x86_64.whl CPython 3.7 abi3 macOS 10.9+ x86-64 Details

Total release size: 319.0 MB

Release files / unicorn-2.1.4.tar.gz

Download URL unicorn-2.1.4.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
00567a70e323f749b419cd86bee4f9115beab7ebba32194581c090cbb7c59cff
BLAKE2b-256 checksum
How to use checksums
b21bb4248aa8422e86de690cf8e85cf8feae4c33405a097d1ebe71570bdaa6f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-win_amd64.whl

Download URL unicorn-2.1.4-py2-none-win_amd64.whl
Size 15.9 MB
Tags Python 2 Windows x86-64
SHA-256 checksum
How to use checksums
c1d53d2416d270cf8a6a6e38c2530ca436494d6c7f4377a03d5eb07b25d8dc27
BLAKE2b-256 checksum
How to use checksums
9c33011d3c9f9358718a1f6f91c72ce4682094bc61368aff90fad06b9f4126c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-win32.whl

Download URL unicorn-2.1.4-py2-none-win32.whl
Size 11.8 MB
Tags Python 2 Windows x86-32
SHA-256 checksum
How to use checksums
6c9fffa46935bbd2d30db7f7ac6c5c809d3b512bcbdb53ced9796e27b27d6157
BLAKE2b-256 checksum
How to use checksums
e1ee762de7baacb5c51cf1040150cd1c05d22a97dd5d1b06c431fbbb919a6126
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-musllinux_1_2_x86_64.whl

Download URL unicorn-2.1.4-py2-none-musllinux_1_2_x86_64.whl
Size 16.9 MB
Tags Linux musl 1.2+ x86-64 Python 2
SHA-256 checksum
How to use checksums
73d2eb557cc0255f18c55b15951c46dff1c07f996588df4cea1b1bdc5d69b184
BLAKE2b-256 checksum
How to use checksums
f6435f47b2be97e256f026aced8cf9cdc68bc582762fc8bc1f269e9a86c97ff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-musllinux_1_2_i686.whl

Download URL unicorn-2.1.4-py2-none-musllinux_1_2_i686.whl
Size 20.5 MB
Tags Linux musl 1.2+ x86-32 Python 2
SHA-256 checksum
How to use checksums
7eed9406a0503e91a2fecb250937aeb55291b2a3b9b51d23a39e7fc0be9a30d7
BLAKE2b-256 checksum
How to use checksums
b18bb6cfdbf3e1a1b2bd0342eb04cb616bae80100a2057f3cafe9fc316d6399c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-musllinux_1_2_aarch64.whl

Download URL unicorn-2.1.4-py2-none-musllinux_1_2_aarch64.whl
Size 16.1 MB
Tags Linux musl 1.2+ ARM64 Python 2
SHA-256 checksum
How to use checksums
35ac021ead8c992b15a511be73bf703429e5d346136ae38e6307c3d852655341
BLAKE2b-256 checksum
How to use checksums
83a0ed88f6b350016eb89fee1835501a5b4fd4ac5f4428fd3f2bab146d80e212
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL unicorn-2.1.4-py2-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 16.4 MB
Tags Linux glibc 2.17+ x86-64 Python 2
SHA-256 checksum
How to use checksums
a445476fff91e636b812d35ff1b0fb07f39ceaec0b3a86d246f7d431ff7766b3
BLAKE2b-256 checksum
How to use checksums
a5e042118abb27edb1c69ef9c93b42358ecce2bff345e95b4ae3ae72822d2c9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-manylinux2014_i686.manylinux_2_17_i686.whl

Download URL unicorn-2.1.4-py2-none-manylinux2014_i686.manylinux_2_17_i686.whl
Size 19.8 MB
Tags Linux glibc 2.17+ x86-32 Python 2
SHA-256 checksum
How to use checksums
cec2b7d3c407140ca9816e050c881b3fde7bf553e38169b7c52a2ce6719c9f43
BLAKE2b-256 checksum
How to use checksums
0aefedb3647c9d16418fc706caa3582a9178829310e512a2343f561a89e6789e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL unicorn-2.1.4-py2-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 15.4 MB
Tags Linux glibc 2.17+ ARM64 Python 2
SHA-256 checksum
How to use checksums
02630b1693f265d53cb6463334f81f23d96f5f58dd0602334e891302af738159
BLAKE2b-256 checksum
How to use checksums
e2a9b8eb96072a910ca0e43a9cf5ae9ba38491ed1ac6f98760d51ec7fe61f08f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-macosx_11_0_arm64.whl

Download URL unicorn-2.1.4-py2-none-macosx_11_0_arm64.whl
Size 12.1 MB
Tags Python 2 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8a7a94e67ce277c63112afa06640862b6c7395b8d42aec38f7a61a96c4b1658e
BLAKE2b-256 checksum
How to use checksums
e4c8c935fe28ecd73be6cf9e643ce99d620c38bf0544f81dfa7fa09f48ee977e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-py2-none-macosx_10_9_x86_64.whl

Download URL unicorn-2.1.4-py2-none-macosx_10_9_x86_64.whl
Size 13.0 MB
Tags Python 2 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
8687ec8f83cd40201ac7de3c52f7538754e61b5245c651a019711c7289ee26a4
BLAKE2b-256 checksum
How to use checksums
25ba085e9664ee4f82a9278c7aa5b3e32971fa7a993d0615c2ab465e8ff9018d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-win_amd64.whl

Download URL unicorn-2.1.4-cp37-abi3-win_amd64.whl
Size 15.9 MB
Tags CPython 3.7 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d7107500c64ce5c168fbff6bef9485b5db1350050036f4cea568650cf8bdbdf5
BLAKE2b-256 checksum
How to use checksums
703dde7be9bd1addabe6d8a1369381f8a080400c349850e978689c5e18287957
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-win32.whl

Download URL unicorn-2.1.4-cp37-abi3-win32.whl
Size 11.8 MB
Tags CPython 3.7 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
9be89e69be5e2631299f39a7fb8e47b8d3bfaa70ae746e9c4c5f9476a2df9778
BLAKE2b-256 checksum
How to use checksums
08236ae96f8efa8ede707cc67d18d76a08de498bd818483cf8211baf855eabb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-musllinux_1_2_x86_64.whl

Download URL unicorn-2.1.4-cp37-abi3-musllinux_1_2_x86_64.whl
Size 16.9 MB
Tags CPython 3.7 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
d348a90ee90219d141cb115ef8ed7e3fd1af42afaee105f7580761d775b25e32
BLAKE2b-256 checksum
How to use checksums
ed4b4628ccb20eb3ad1af400de8181d1f4e5c1a3fc2affa1b3410c1b2d71af36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-musllinux_1_2_i686.whl

Download URL unicorn-2.1.4-cp37-abi3-musllinux_1_2_i686.whl
Size 20.5 MB
Tags CPython 3.7 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
ce5c3bfd05f2a5749a0d8a960e1dfc26519a2d09377dc01cfa1378b936a953f8
BLAKE2b-256 checksum
How to use checksums
35070b2fb9d2a462066aa24b7d18b463300df79cc4eaa471379f8af7d216261c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-musllinux_1_2_aarch64.whl

Download URL unicorn-2.1.4-cp37-abi3-musllinux_1_2_aarch64.whl
Size 16.1 MB
Tags CPython 3.7 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
01d744ba01c5cc68f1d7afe3d183f1868720fd440ec4eaedc4d1d5d9bf54b84c
BLAKE2b-256 checksum
How to use checksums
7038ba5a051c844026e59ab6e0017db8cec77dbe20ab5f1d6edae1ce9d885b06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL unicorn-2.1.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 16.4 MB
Tags CPython 3.7 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
9d6e6dea140560de4ebd8446661f7ef84a357d428c14a3ef09dacd306ec8c239
BLAKE2b-256 checksum
How to use checksums
e7dfded5e3684c2d7600b30cc8a7530277b8cb36644a1a9d34cade7ebb45604c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL unicorn-2.1.4-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 19.8 MB
Tags CPython 3.7 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
8f4e63b76ac4faa7cd32a4c436e96eabc24b91d52e73bde7699ec886bddf9277
BLAKE2b-256 checksum
How to use checksums
5f7f83161916dedff22ddb187bd2751150a1bc53c88b7c1a8d6fa1cc9e144c64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL unicorn-2.1.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 15.4 MB
Tags CPython 3.7 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
bd1fb0c9af5f57e356d8a96928b4fe045b2e18f308ef23b481d5f970008aa722
BLAKE2b-256 checksum
How to use checksums
339f32d41eb942221bcf4417cdc65537fc8b3bbbd6079d6c161e621f1dd4e94a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-macosx_11_0_arm64.whl

Download URL unicorn-2.1.4-cp37-abi3-macosx_11_0_arm64.whl
Size 12.1 MB
Tags CPython 3.7 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d6c93e0f60328d8f4a1792af3f834137a28050fcc2305f2ec01efe8558a9844e
BLAKE2b-256 checksum
How to use checksums
6cae4943c6f8524d729ec7d5e69df6407ea05d710fe77471d91cecf3fc64eb57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / unicorn-2.1.4-cp37-abi3-macosx_10_9_x86_64.whl

Download URL unicorn-2.1.4-cp37-abi3-macosx_10_9_x86_64.whl
Size 13.0 MB
Tags CPython 3.7 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2a6f738fab5fabffa56af1e7bbf16ea1e91466c342f8dc64f125bd70f36c6b80
BLAKE2b-256 checksum
How to use checksums
c8a792b47771e2107a201632a199cec91e8a81ee8a071ca6b7e7d600d8c61ac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page