NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4286 most downloaded on PyPI
Unicorn CPU emulator engine
Last release 1 years ago
09 Sep 2025
Ships unpredictably
gaps range from 2 weeks to 1.8 years
Nearly every release is documented
notes for 11 of 12 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
28 releases · first in 2017
Hello everyone. It has been a while since last release and we are releasing Unicorn 2.1.4. Though it is a patch release, there are some highlights wor
Hello everyone. It has been a while since last release and we are releasing Unicorn 2.1.4. Though it is a patch release, there are some highlights worth mentioning.
The very first thing is that, Unicorn (finally!) offers consistent PC guarantee in all cases. Well, it might sound weird that why it was not. Generally QEMU is not designed to keep PC synced in all cases for performance and Unicorn once put necessary hacks but those hacks were too hard to maintain. Now we have architecture agnostic mechanism to offer the PC guarantee.
In addition, we offer a standalone unicorn Rust crate unicorn-engine-sys to allows users to build their own bindings since v2.1.4 (actually v2.1.5 because of the mess of releasing new crates). There are also lots of bindings improvements contained in this release.
We also fix the building and distribution issues for macos ARM and distribute wheels again. Our friend @patryk4815 from pwndbg helps sort this out. Kudos to him!
For 2.2.0, personally I wish I could work it out before the end of this year, by merging lots of pending big PRs but my time budget is relatively limited recently. Please aware that 2.2.0 would probably bump QEMU version to 5.1.0 or even higher so semantics could be changed. Any help is highly welcome and please contact @wtdcode if you are keen.
Lastly, I would like to express my deep gratitude to all contributors that help make this release happen, specifically @Evian-Zhang for Rust improvements and unicornafl integration, @Antelox for constant contributions on our workflows, @amaanq for various huge work, reviews and Rust bindings split, @PhilippTakacs for PR reviews and fix. Again, thanks for every contributor!
Below goes the auto generated release notes. Starting from this tag, the release note will switch to a short passage plus Github generated contents because this makes it easier to follow big changes.
ESR register by @amaanq in https://github.com/unicorn-engine/unicorn/pull/2155BaseException in wrappers instead of Exception by @amaanq in https://github.com/unicorn-engine/unicorn/pull/2163closure in alloc_code_gen_buffer by @HyperSine in https://github.com/unicorn-engine/unicorn/pull/2197read_sprr_perm for Apple real CPUs and GitHub Actions; enable Apple ARM64 wheel builds on PyPI. Fixes #2033. by @patryk4815 in https://github.com/unicorn-engine/unicorn/pull/2227Full Changelog: https://github.com/unicorn-engine/unicorn/compare/v2.1.3...v2.1.4
One column per quarter.
We urge users to update their versions as previous version contains security vulnerabilities.
2.1.3 includes a few fixes for distribution and stability issues. We urge users to update their versions as previous version contains security vulnerabilities.
UC_CPU_X86_HASWELL and remove a few quirks.ctl_tlb_mode. @AnteloxFull Changelog: https://github.com/unicorn-engine/unicorn/compare/2.1.2...2.1.3
As usual, thanks to all contributors and sorry if I missed your name here (please tell me @wtdcode !).
2.1.2 is a patch release to mainly resolve the stability issue of the 2.1.0 release series and fix a few distribution issues. All users of Unicorn are
2.1.2 is a patch release to mainly resolve the stability issue of the 2.1.0 release series and fix a few distribution issues. All users of Unicorn are expected to upgrade.
Full Changelog: https://github.com/unicorn-engine/unicorn/compare/2.1.1...2.1.2
As usual, thanks to all contributors and sorry if I missed your name here (please tell me @wtdcode !).
Lastly and personally, I would like to express my big thanks to @Antelox @elicn and @PhilippTakacs for spending lots of time improving Unicorn Engine. Also, there are a few big pull requests adding new architectures (RH850, TCI, LoongArch64, AVR) and I will actively push them to 2.2.0.
This is a small release to fix a few urgent issues.
This is a small release to fix a few urgent issues.
musllinux distribution @AnteloxFull Changelog: https://github.com/unicorn-engine/unicorn/compare/2.1.0...2.1.1
It has been a while since the last release, and 2.1.0 brings several exciting features. Below is the changelog from the latest to the oldest (though n
It has been a while since the last release, and 2.1.0 brings several exciting features. Below is the changelog from the latest to the oldest (though not strictly).
-DUNICORN_LOGGING=yes to enable all qemu logs. @BitMaskMixerstore_helper and cleaning page locks. @tunz @boborjan2uc_ctl.Full Changelog: https://github.com/unicorn-engine/unicorn/compare/2.0.1...2.1.0
Again, thanks for all contributors and sorry if I missed your name here (please tell me @wtdcode !). 2.1.1 is also coming because we expect some minor break changes to fix.
This is a small release to complement the previous 2.0.1 release.
This is a small release to complement the previous 2.0.1 release.
Fix:
Unicorn2 makes the first step to Debian packages and vcpkg! Thanks @roehling and @LilyWangL !
Unicorn2 makes the first step to Debian packages and vcpkg! Thanks @roehling and @LilyWangL !
Features:
clang-cl on Windows. #1687sdist and add aarch64 Linux wheels. Note pip can build Unicorn2 on M1 now!Fix/Improvements:
uc_ctl_set_cpu_model check.UC_HOOK_BLOCK hooks.Thanks:
@roehling @LilyWangL @mrexodia @zachriggle @Yu3H0 @rhelmot @relapids @sh4w1 @TSRBerry
Build both shared library and static archive as unicorn1 does.
Features:
Fixes/Improvements:
uc_emu_start deletes a hookuc_mem_protect doesn't change the protection of current TB memory.Thanks:
@AfoHT @mrexodia @bet4it @lowlyw @ekilmer @ondryaso @QDucasse @PalumboN @uberwoozle
This release is expected to be the real last RC release of Unicorn2. ;)
This release is expected to be the real last RC release of Unicorn2. ;)
Features:
Fixes/Improvements:
UC_HOOK_CODE installed.Thanks:
@shuffle2 @liyansong2018 @rose4096 @nviennot @n1tram1 @iii-i @dzzie @yrashk @bet4it
This release is expected to be the last RC release of Unicorn2.
This release is expected to be the last RC release of Unicorn2.
Features:
Fixes/Improvements:
uc_ctl_set_model #1506armeb-softmmu and aarch64eb-softmmuuc_emu_startThanks:
@Kritzefitz @zznop @QDucasse @gerph @bet4it @mrexodia @iii-i @jbcayrou @scribam
Nothing published for this version
This release fixes a few urgent bugs and improves performance.
This release fixes a few urgent bugs and improves performance.
Fixes/Improvements:
UC_HOOK_EDGE_GENERATED not calling for indirect jumps.uc_emu_start calls without context save/restoreuc_mem_unmap logic for both ram and mmio memory.uc_trace_code and PC sync to improve performance.Thanks:
This is a big release of Unicorn and introduces a few powerful new features and a bunch of fixes.
This is a big release of Unicorn and introduces a few powerful new features and a bunch of fixes.
New Features:
Fixes/Improvements:
ecall, pc not advanced. unicorn-engine/unicorn#1477Thanks:
This is an urgent pre-release regarding python bindings on older Linux systems.
This is an urgent pre-release regarding python bindings on older Linux systems.
uc_closeEnjoy.
This is an urgent pre-release regarding the packaging problem of python bindings.
This is an urgent pre-release regarding the packaging problem of python bindings.
zip_false and is_pure to False to avoid issues on some Linux distributions.libm to make sure our libraries work.Enjoy.
Unicorn2 first release candidate!
Unicorn2 first release candidate!
Java: remove deprecated javah and build with javac
Fix some building issues
Fix some issues in the core
Arm:
X86:
Bindings:
Enable building for ARM little-endian only (ignore big-endian)
Fix context saving/retoring API (core & Python binding)
Add cmake option to build Unicorn as a static library
This version fixes some issues and improves over v1.0.2-rc3.
This version fixes some issues and improves over v1.0.2-rc3.
Nothing published for this version
Nothing published for this version
lots of bug fixes & improvement since v1.0.1
lots of bug fixes & improvement since v1.0.1
Stable release with some important bugfixes & new features for several architectures.
Stable release with some important bugfixes & new features for several architectures.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →