A developer has implemented "stinkarm," an ARMv7 emulator written in Rust without using any dependency libraries. The codebase consists of 1,300 lines.
Rust-based ARMv7 Emulator "stinkarm" Released with No Dependencies, Outperforming QEMU in Execution Speed
This article is a translation. Read the Japanese original
This tool performs analysis and verification of 32-bit ARM binaries, segment mapping, and decoding of a portion of ARM instructions. It translates memory operations between the guest and host and converts ARM Linux system calls to the x86-64 System V specification for transfer.
Regarding execution performance, it took 1.9ms to launch an ARMv7 hello world binary. The emulation itself, excluding initialization processes, took 0.015ms. Since the same process requires 12.3ms using QEMU, stinkarm demonstrates faster operation than QEMU.
The developer said that the tool was created for the purpose of understanding ELF formats and ARM instruction encoding. They also aim to utilize it in the development of a JIT compiler for a programming language currently under design.
Source: Building a Minimal Viable Armv7 Emulator from Scratch (HN 75pt, 21 comments) (HN Search (backfill), 2025-11-21)