awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
FEX-Emu avatar

FEX-Emu/FEX

0
View on GitHub↗
6,896 stars·251 forks·C++·mit·17 viewsfex-emu.com↗

FEX

FEX is an emulator that executes 32-bit and 64-bit x86 binaries on ARM64 hardware. It functions as a binary translation framework that converts guest machine code into host instructions using a JIT compilation engine and a persistent code cache.

The project features a Vulkan graphics wrapper that translates OpenGL and Vulkan API calls to native host drivers, enabling cross-architecture graphics rendering. It includes a dedicated root filesystem manager for downloading, mounting, and switching between compressed filesystem images required for guest application environments.

The system provides comprehensive debugging and observability tools, including a remote GDB server, CPU state inspection, and the ability to capture and replay Vulkan graphics frames. Performance is managed through library call forwarding and a graphical interface for adjusting runtime configuration and memory models.

The emulator integrates with the host kernel binary format registration system, allowing emulated binaries to be launched directly from the host shell.

Features

  • Dynamic Binary Translators - Provides a dynamic binary translation system to execute x86 machine code on ARM64 hardware at runtime.
  • x86 Binary Emulators - Executes 32-bit and 64-bit x86 binaries on ARM64 hardware through dynamic binary translation.
  • Instruction Translation Caches - Utilizes a persistent code cache to store translated machine code and reduce execution stuttering.
  • Graphics API Translation - Translates OpenGL and Vulkan API calls to host drivers for cross-architecture graphics rendering.
  • Multi-Architecture Emulators - Emulates x86 processor architectures to run diverse software and games on ARM64 hardware.
  • Root Filesystem Managers - Includes a dedicated manager for downloading and mounting compressed root filesystem images for guest apps.
  • x86-on-ARM64 Emulation - Executes x86 binaries on ARM64 hardware by translating processor instructions.
  • JIT Compilation Engines - Uses a JIT compilation engine with a persistent code cache to optimize guest code execution.
  • Runtime Image Mounting - Provides a dedicated guest filesystem environment via mounted squashfs images to isolate dependencies.
  • Remote Debugging - Attaches a remote GDB server to running processes to retrieve backtraces and monitor execution.
  • Emulated Application Debugging - Provides comprehensive tools for analyzing crashes and inspecting CPU state in emulated processes.
  • Emulated Process Debugging - Analyzes application crashes and system signals to identify failures within the emulated environment.
  • Performance Tuning Utilities - Utilizes a code cache and tunable memory models per application to improve execution speed.
  • RootFS Image Managers - Provides a utility to download, mount, and manage compressed filesystem images for guest applications.
  • Vulkan API Support - Enables the execution of 32-bit and 64-bit binaries that utilize the Vulkan rendering API.
  • CPU Register Inspection - Enables inspection of CPU register state and disassembled code to identify causes of application crashes.
  • Kernel Binary Format Registration - Integrates with the host kernel binary format registration system to launch emulated binaries directly from the shell.
  • Library Call Forwarding - Implements library call forwarding to route guest requests to host libraries for hardware acceleration.
  • Root Filesystem Provisioning - Provides native root filesystems that allow guest programs to operate without isolation tools.
  • Performance Tuning - Optimizes execution speed through tunable memory models, code caching, and JIT annotations.
  • Binary Execution Automation - Automates the execution of x86 binaries by registering the emulator with the host kernel.
  • Graphics Call Interceptors - Passes graphics and system calls directly to host libraries to minimize emulation lag.
  • Library Call Forwarding - Redirects guest library requests to native host libraries for hardware acceleration of graphics and system tasks.

Star history

Star history chart for fex-emu/fexStar history chart for fex-emu/fex

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to FEX

Similar open-source projects, ranked by how many features they share with FEX.
  • ptitseb/box64ptitSeb avatar

    ptitSeb/box64

    5,480View on GitHub↗

    Box64 is a cross-architecture runtime and user-mode emulation layer that allows Linux and Windows software to run on non-native hardware. It functions as an x86-64 instruction emulator and binary translator, executing 64-bit binaries on different CPU architectures by translating machine code into native instructions. The project utilizes dynamic recompilation to accelerate execution and maps guest system calls to native host libraries to increase speed and hardware compatibility. It can simulate a 32-bit execution environment to support legacy software and integrates with the operating system

    C
    View on GitHub↗5,480
  • unicorn-engine/unicornunicorn-engine avatar

    unicorn-engine/unicorn

    9,076View on GitHub↗

    Unicorn is a multi-architecture CPU emulation framework and library that utilizes just-in-time compilation to execute instructions across various processor architectures, including ARM, x86, and RISC-V. It functions as both a JIT compilation engine and an instrumentation tool, allowing for the execution of machine code without the need for physical hardware. The framework is distinguished by its hook-based execution instrumentation, which enables the interception of specific instructions and memory accesses to trigger custom callback functions. It provides a language-agnostic binding layer an

    C
    View on GitHub↗9,076
  • ptitseb/box86ptitSeb avatar

    ptitSeb/box86

    3,783View on GitHub↗

    Box86 is a Linux userspace emulator and instruction translator designed to run x86 binaries on ARM-based devices. It functions as a hardware compatibility layer that simulates an x86 environment, allowing software built for different processor architectures to execute on ARM Linux. The project utilizes a dynamic recompiler to translate x86 opcodes into native ARM instructions at runtime, increasing execution speed over standard interpretation. To further improve performance and stability, it wraps native system libraries and Vulkan drivers, redirecting architecture-specific calls to native ho

    Carmarm-platformsdynarec
    View on GitHub↗3,783
  • khronosgroup/moltenvkKhronosGroup avatar

    KhronosGroup/MoltenVK

    5,491View on GitHub↗

    MoltenVK is a Vulkan implementation for macOS that acts as a cross-API graphics wrapper. It serves as a translation layer that maps Vulkan graphics and compute API calls to corresponding Metal commands for execution on Apple hardware. The project enables the translation of Vulkan rendering pipelines to the native Metal framework, allowing cross-platform graphics and compute applications to run on Apple operating systems. This facilitates the porting of games and applications developed for other platforms to macOS. The implementation includes capabilities for advanced graphics feature impleme

    Objective-C++
    View on GitHub↗5,491
See all 30 alternatives to FEX→

Frequently asked questions

What does fex-emu/fex do?

FEX is an emulator that executes 32-bit and 64-bit x86 binaries on ARM64 hardware. It functions as a binary translation framework that converts guest machine code into host instructions using a JIT compilation engine and a persistent code cache.

What are the main features of fex-emu/fex?

The main features of fex-emu/fex are: Dynamic Binary Translators, x86 Binary Emulators, Instruction Translation Caches, Graphics API Translation, Multi-Architecture Emulators, Root Filesystem Managers, x86-on-ARM64 Emulation, JIT Compilation Engines.

What are some open-source alternatives to fex-emu/fex?

Open-source alternatives to fex-emu/fex include: ptitseb/box64 — Box64 is a cross-architecture runtime and user-mode emulation layer that allows Linux and Windows software to run on… unicorn-engine/unicorn — Unicorn is a multi-architecture CPU emulation framework and library that utilizes just-in-time compilation to execute… ptitseb/box86 — Box86 is a Linux userspace emulator and instruction translator designed to run x86 binaries on ARM-based devices. It… khronosgroup/moltenvk — MoltenVK is a Vulkan implementation for macOS that acts as a cross-API graphics wrapper. It serves as a translation… skmp/reicast-emulator — Reicast Emulator is an open-source video game emulator that runs vintage Sega Dreamcast console games on contemporary… orbstack/orbstack — OrbStack is a native macOS application that replaces Docker Desktop, providing an all-in-one environment for running…