Case study
darling-lol: running the macOS League of Legends client on Linux through Darling
Patches the Darling macOS compatibility layer so that Riot’s macOS League of Legends client and game run on x86-64 Linux. The changes span Darling and 30 of its components, including Metal/Indium, AppKit, QuartzCore, CoreAudio, the kernel shim and darlingserver, with build, install and launch tooling. It is an experimental rehosting layer; playability and frame-rate results are author-reported.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Stars
- 690
- Last commit
- 2026-11-04
- Language
- Python
- License (GitHub)
- GPL-3.0
GitHub data as of 2026-11-09
Requirements & limits
- Prerequisites: Requires x86-64 Linux 5.14+, X11 or Xwayland, and a hardware Vulkan/OpenGL driver. Only AMD RADV has been exercised; NVIDIA support is unverified. Building needs Git LFS, CMake, Clang/LLD with LLVM development files, Python 3.12+, Darling build dependencies, and at least 50 GB of disk. The experimental Nix flake builds the runtime locally.
- Prerequisites: Users supply the League client through Riot’s installer and sign in there. Game files, Riot installers, account data, Apple SDK binaries, and compiled runtimes are excluded from the repository. TESTING.md excludes debuggers, client API calls, hooks, and input automation.
- Scope: Applies patches to Darling and 30 pinned components. Riot and League clients launch and manually played ARAM matches have run; installation through Riot’s interface can stall. The README calls this a development snapshot.
- License: Original tooling is GPL-3.0; patches retain their target files’ licenses, including GPL, LGPL, APSL, BSD, and Apache terms. The README warns that play in this environment can cause suspensions or permanent bans and advises against using it currently.
Cite
BibTeX
@misc{darling-lol-league-linux-case,
title = {{darling-lol: running the macOS League of Legends client on Linux through Darling}},
howpublished = {\url{https://github.com/lucannez64/darling-lol}},
url = {https://github.com/lucannez64/darling-lol},
urldate = {2026-10-18},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/darling-lol-league-linux-case/}}
}Plain text
darling-lol: running the macOS League of Legends client on Linux through Darling. https://github.com/lucannez64/darling-lol (accessed 2026-10-18). Awesome REA entry: https://awesomerea.org/resources/darling-lol-league-linux-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · lucannez64/darling-lol · Revision 78a47d6
- docs/STATUS.md GitHub · lucannez64/darling-lol · Revision 78a47d6
- docs/SETUP.md GitHub · lucannez64/darling-lol · Revision 78a47d6
- docs/TESTING.md GitHub · lucannez64/darling-lol · Revision 78a47d6
- NOTICE.md GitHub · lucannez64/darling-lol · Revision 78a47d6
- LICENSE GitHub · lucannez64/darling-lol · Revision 78a47d6
- upstream/manifest.json GitHub · lucannez64/darling-lol · Revision 78a47d6
- .github/workflows/source-check.yml GitHub · lucannez64/darling-lol · Revision 78a47d6
- research/README.md GitHub · lucannez64/darling-lol · Revision 78a47d6
- https://github.com/darlinghq/darling/tree/60ba801decee7a00782f74f6be4c8ffb013f79ff
- https://github.com/darlinghq/darling/issues/1467#issuecomment-6171417617
More in Games
- Deathchase: annotated game disassembly · Case study
- Defender: annotated arcade disassembly · Case study
- Destiny 2 build 86657: Sunrise/Dawn reconstruction research report · Case study
- Diep.io Parser: reconstructing game packet structure · Case study
- DirectMusic: an open reimplementation of Microsoft’s music API · Case study
- Dishonored: reconstructing Windows XP compatible storefront DLLs · Case study