{"slug": "unicorn", "name": "Unicorn", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 6, "warners": 2, "score": 1.027, "rising": -0.98, "first": "2026-02-05", "latest": "2026-06-16", "why": "There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 1, "warn": 2}, "spark": [0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/", "kind": "", "icon": true, "domain": "unicorn-engine.org", "github_repo": null, "official_url": "https://www.unicorn-engine.org/", "pricing": "", "aliases": ["Unicorn", "Unicorn Engine", "unicorn"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 776898384, "item_id": 48556149, "url": "https://news.ycombinator.com/item?id=48556149", "by": "bux93", "date": "2026-06-16", "version": null, "stance": "recommend", "quote": "is useful for reverse/security engineering", "excerpt": "This comparison to qemu gives some idea: https://www.unicorn-engine.org/docs/beyond_qemu.html The ability to execute and inspect some code without any context (no OS, not even a complete binary) is useful for reverse/security engineering.", "context": "", "use_case": "Reverse engineering and security analysis", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 776896080, "item_id": 48556005, "url": "https://news.ycombinator.com/item?id=48556005", "by": "goodmythical", "date": "2026-06-16", "version": null, "stance": "recommend", "quote": "There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/", "excerpt": "Well, say all you've got is an x86 device, but you want to develop for ARM. You can write and compile your code, push it to unicorn, and see how it runs. Or you can use it as a sandbox serving x86 software on an x86 machine. Or as a \"virtual machine\" serving say AOSP for ARM on a Windows x86 host. There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/", "context": "", "use_case": "CPU emulation", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 750558625, "item_id": 46909914, "url": "https://news.ycombinator.com/item?id=46909914", "by": "lloeki", "date": "2026-02-05", "version": null, "stance": "recommend", "quote": "complete with zero-downtime unicorn handover", "excerpt": "Ah, the memories of capistrano, complete with zero-downtime unicorn handover https://github.com/capistrano/capistrano/", "context": "", "use_case": "", "switched_from": "", "story": "Things Unix can do atomically"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 776969152, "item_id": 48560572, "url": "https://news.ycombinator.com/item?id=48560572", "by": "xvilka", "date": "2026-06-16", "version": null, "stance": "warn", "quote": "The problem is that it's not sustainable - QEMU improved so much since the moment of fork and updating the QEMU code in Unicorn is always done manually.", "excerpt": "The problem is that it's not sustainable - QEMU improved so much since the moment of fork and updating the QEMU code in Unicorn is always done manually. It is especially important for architectures that evolve quickly - ARM64, RISC-V, x86. Meanwhile, QEMU now has the notion of TCG plugins[1] that can read/write registers and memory, which is enough for most cases. You can see many examples of the plugins in contrib/p", "context": "", "use_case": "CPU emulation", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 776830370, "item_id": 48551898, "url": "https://news.ycombinator.com/item?id=48551898", "by": "audunw", "date": "2026-06-16", "version": null, "stance": "warn", "quote": "Unicorn illustrates one of the issues with his style.", "excerpt": "Mozart doesn\u2019t feel right. The code isn\u2019t beautiful and elegant. It\u2019s not built to last (at least for ffmpeg) or be some kind of masterpiece. He writes code to get a job done or tickle some intellectual curiosity. It\u2019s not beautiful but that\u2019s OK. I think Unicorn illustrates one of the issues with his style. It wouldn\u2019t have needed to exist of the QEMU code was architected into neat components. But then writing spagh", "context": "", "use_case": "CPU emulator framework", "switched_from": "", "story": "John Carmack on Fabrice Bellard"}]}], "who": [], "tags": [], "use_cases": ["cpu emulation", "reverse engineering and security analysis", "cpu emulator framework"], "compared": [{"slug": "qemu", "name": "QEMU", "co": 6, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 774135393, "item_id": 48383462, "url": "https://news.ycombinator.com/item?id=48383462", "by": "egberts1", "date": "2026-06-03", "version": null, "stance": "recommend", "quote": "This pair-up is arguably the best set of software tools out there.", "excerpt": "As one who helped improved Capstone and its even more wonderful partner, Unicorn, I actually found an exploit in QEMU using Capstone/Unicorn. Unicorn is a nearly-true software-based CPU emulator for ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86 CPU (and memory) architecture. This pair-up is arguably the best set of software tools out there. QEMU? No worry, that's way back in QEMU v1.4 days (emu", "context": "", "use_case": "CPU emulation", "switched_from": "", "story": "Capstone \u2013 multi-platform, multi-architecture disassembly framework"}, {"id": 740936912, "item_id": 46308557, "url": "https://news.ycombinator.com/item?id=46308557", "by": "hgs3", "date": "2025-12-17", "version": null, "stance": "neutral", "quote": "I do it for my companies projects in addition to dual-licensing under the GPL", "excerpt": "> It never occurred to me that this was a possibility Yes, it's viable. I do it for my companies projects in addition to dual-licensing under the GPL. See \"The unit tests and Unicode data generators are not public. Access to them is granted exclusively to commercial licensees.\" [1]. [1] https://github.com/railgunlabs/unicorn?tab=readme-ov-file#license", "context": "", "use_case": "", "switched_from": "", "story": "How SQLite is tested"}], "threads": [{"url": "https://news.ycombinator.com/item?id=48553450", "title": "Unicorn \u2013 The Ultimate CPU Emulator", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=48550779", "title": "John Carmack on Fabrice Bellard", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48378925", "title": "Capstone \u2013 multi-platform, multi-architecture disassembly framework", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46909468", "title": "Things Unix can do atomically", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46303277", "title": "How SQLite is tested", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"warn": 2, "recommend": 2, "compare": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 776969152, "item_id": 48560572, "url": "https://news.ycombinator.com/item?id=48560572", "by": "xvilka", "date": "2026-06-16", "version": null, "stance": "warn", "quote": "The problem is that it's not sustainable - QEMU improved so much since the moment of fork and updating the QEMU code in Unicorn is always done manually.", "excerpt": "The problem is that it's not sustainable - QEMU improved so much since the moment of fork and updating the QEMU code in Unicorn is always done manually. It is especially important for architectures that evolve quickly - ARM64, RISC-V, x86. Meanwhile, QEMU now has the notion of TCG plugins[1] that can read/write registers and memory, which is enough for most cases. You can see many examples of the plugins in contrib/p", "context": "", "use_case": "CPU emulation", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 776900256, "item_id": 48556266, "url": "https://news.ycombinator.com/item?id=48556266", "by": "pdhborges", "date": "2026-06-16", "version": null, "stance": "compare", "quote": "https://www.unicorn-engine.org/docs/beyond_qemu.html", "excerpt": "https://www.unicorn-engine.org/docs/beyond_qemu.html", "context": "", "use_case": "", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 776898384, "item_id": 48556149, "url": "https://news.ycombinator.com/item?id=48556149", "by": "bux93", "date": "2026-06-16", "version": null, "stance": "recommend", "quote": "is useful for reverse/security engineering", "excerpt": "This comparison to qemu gives some idea: https://www.unicorn-engine.org/docs/beyond_qemu.html The ability to execute and inspect some code without any context (no OS, not even a complete binary) is useful for reverse/security engineering.", "context": "", "use_case": "Reverse engineering and security analysis", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 776896080, "item_id": 48556005, "url": "https://news.ycombinator.com/item?id=48556005", "by": "goodmythical", "date": "2026-06-16", "version": null, "stance": "recommend", "quote": "There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/", "excerpt": "Well, say all you've got is an x86 device, but you want to develop for ARM. You can write and compile your code, push it to unicorn, and see how it runs. Or you can use it as a sandbox serving x86 software on an x86 machine. Or as a \"virtual machine\" serving say AOSP for ARM on a Windows x86 host. There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/", "context": "", "use_case": "CPU emulation", "switched_from": "", "story": "Unicorn \u2013 The Ultimate CPU Emulator"}, {"id": 776830370, "item_id": 48551898, "url": "https://news.ycombinator.com/item?id=48551898", "by": "audunw", "date": "2026-06-16", "version": null, "stance": "warn", "quote": "Unicorn illustrates one of the issues with his style.", "excerpt": "Mozart doesn\u2019t feel right. The code isn\u2019t beautiful and elegant. It\u2019s not built to last (at least for ffmpeg) or be some kind of masterpiece. He writes code to get a job done or tickle some intellectual curiosity. It\u2019s not beautiful but that\u2019s OK. I think Unicorn illustrates one of the issues with his style. It wouldn\u2019t have needed to exist of the QEMU code was architected into neat components. But then writing spagh", "context": "", "use_case": "CPU emulator framework", "switched_from": "", "story": "John Carmack on Fabrice Bellard"}, {"id": 750558625, "item_id": 46909914, "url": "https://news.ycombinator.com/item?id=46909914", "by": "lloeki", "date": "2026-02-05", "version": null, "stance": "recommend", "quote": "complete with zero-downtime unicorn handover", "excerpt": "Ah, the memories of capistrano, complete with zero-downtime unicorn handover https://github.com/capistrano/capistrano/", "context": "", "use_case": "", "switched_from": "", "story": "Things Unix can do atomically"}]}