mempage4k / glue5
git clone https://github.com/mempage4k/glue5.git
A native runtime for GTA V’s WebAssembly build, running on iOS, macOS, Android and Windows without JIT compilation.
+13
stars, 24h · #2,706
+~70
stars, 7 days · #2,965
+178
stars, 30 days · #4,415
178
★ total · +65% this week
185
forks · 3 open issues
Star history (as recorded here)
LanguageRust
LicenseGPL-3.0
Created2026-10-11 (12d ago)
Last push1d ago
Watchers7
OwnerUser
Links
- GitHub: github.com/mempage4k/glue5
- Releases · Issues · Hacker News mentions
README excerpt
Glue 5 Glue 5 is a recompilation toolchain and native compatibility layer for GTA V's WebAssembly build. It turns user-supplied game code into a native application and connects it to the device's graphics, audio, storage and controls. The game runs locally on iOS and macOS. Phones, tablets and computers share the same code base; more platforms are planned. The game's code is compiled for the target device when you build the app. It runs without just-in-time (JIT) compilation. Its files are read from a folder on the device, or streamed from a computer that has them. Improvements to the shared runtime benefit both mobile and desktop builds. **This project provides only the recompilation tools and compatibility layer. It does not include or distribute ANY GTA V assets or game binaries.** Users must supply the required files from the supported **WebAssembly (WASM) version of the game**: `game.wasm` at build time, and the prepared game assets and translated shaders at run time. Files from a regular PC or console installation alone are not sufficient. `game.wasm` is translated to C with [wasm2c] at build time, compiled with the platform's C compiler and linked into a Rust host that provides the Emscripten/WASI imports, threads, file access, input, audio and GPU support. **Status:** the story mode runs on macOS and iOS devices (wgpu on Metal, with sound); keyboard, mouse, gamepads and touch controls work. The Android app builds (wgpu on Vulkan); it has not run on a device yet. The Linux build and AppImage (wgpu on Vulkan, X11 and Wayland) are set up but not yet built or run. See design.md for architecture, tradeoffs and known limits. ## Layout | Path | What | |---|---| | `crates/glue5-game` | The game module. Its build script verifies `game.wasm`, runs wasm2c, applies hooks and compiles the C. | | `crates/glue5-runtime` | Host runtime: Emscripten/WASI imports, threads, VFS, input, audio output, the GPU command ring (and a null backend). | | `crates/glue5-gpu` | The renderer: executes the engine's D3D11-style command ring with wgpu (Metal on Apple platforms, Vulkan elsewhere). | | `crates/glue5-stream` | The game's files over the network: `glue5-serve` (a game folder to other devices), the client and its local copy, Bonjour discovery. | | `crates/glue5-mods` | Mods: Luau scripts in the game's own script threads, calling its natives; the natives' table and Luau definitions are generated from game.wasm and the natives database. | | `crates/glue5-studio` | GLUE 5 Studio, the mods' web IDE the game serves: Leptos (wasm) around CodeMirror, built by glue5-mods. | | `crates/glue5` | The application (SDL3), the same on every platform: window, input, audio, settings and touch controls (egui overlay). Its `headless` example runs the game without a window. | | `platform/ios` | What iOS needs around it: `main.c`, entitlements, the xcodegen spec. | | `platform/tvos` | The same for the Apple TV (so far run in the simulator only). | | `platform/android` | The Gradle p