FEX is a fast usermode x86 and x86-64 emulator for ARM64 Linux.
FEX solves the problem of running x86 applications on ARM64 Linux systems by translating x86 instructions to ARM64 at runtime. It works as a usermode emulator, meaning it runs applications without requiring full system virtualization. The tool supports both 32-bit and 64-bit x86 binaries and can be combined with Wine or Proton to run Windows games. To reduce emulation overhead, FEX forwards API calls to host system libraries such as OpenGL and Vulkan rather than emulating them. An experimental code cache minimizes stuttering during gameplay, and a per-application configuration system lets users tune performance characteristics for individual games, including the option to skip expensive memory model emulation. A graphical configuration tool called FEXConfig provides an accessible way to explore and adjust these settings.
FEX is suitable for ARM64 Linux users who need to run x86 applications, particularly gamers using Wine or Proton. It requires ARMv8.0 or newer hardware and has been tested on Arch Linux, Fedora, openSUSE, and Ubuntu. An x86-64 RootFS is necessary to run applications; the project provides a tool called FEXRootFSFetcher to download pre-built filesystems for many distributions. The README positions FEX alongside qemu-user and box64 as similar tools in this category.
Development activity shows consistent engagement with the codebase. The project maintains an active wiki with setup guides and development documentation. Pull requests receive timely review and feedback from maintainers. Issue discussions demonstrate responsiveness to user reports and feature requests. The codebase reflects ongoing optimization work, particularly around the code cache and per-application configuration features. Documentation is kept current across multiple languages to serve a broader user base.