Blink is a tiny x86-64-linux emulator that runs Linux binaries on different operating systems and hardware architectures.
Blink solves the problem of executing x86-64 Linux programs on non-Linux systems and non-x86 architectures by emulating the x86-64 instruction set and Linux system calls. It achieves this through a lightweight, self-contained implementation that requires only a POSIX-compliant C library. The emulator includes a just-in-time compiler for performance on x86 and ARM64 platforms, and it can be compiled with optional features disabled for minimal binary size.
Blink suits developers who need to run Linux binaries portably across macOS, FreeBSD, OpenBSD, Cygwin, and Linux on various architectures including ARM, RISC-V, MIPS, PowerPC, and s390x. It is particularly valuable for scenarios where binary size matters or where qemu-x86_64 is unavailable. Compared to qemu-x86_64, Blink offers a significantly smaller footprint at around 115 to 221 kilobytes depending on build configuration, runs on more operating systems than qemu-x86_64 supports, and achieves roughly twice the performance on SSE integer and floating-point workloads and ephemeral programs like compilers. The project also includes Blinkenlights, a terminal debugger for visualizing program execution with reverse debugging capabilities, which differs from GDB by focusing on memory visualization and execution history rather than traditional breakpoint-based debugging.
The project maintains regular testing across multiple platforms and architectures to verify binary compatibility. Build modes are available for different use cases, including a tiny mode that reduces binary size by half with no performance impact, sanitizer modes for debugging memory safety and threading issues, and optimized modes for production use. The tool supports configuration tuning to disable optional features like JIT, threading, sockets, and floating-point support when even smaller binaries are needed.