Benilla rebuilds the 1.12.1 client from scratch
Benilla is a replacement game client for one specific target: English World of Warcraft 1.12.1, build 5875. Its own Rust code reads the original data formats, renders the world, speaks the network protocol, runs the stock FrameXML and Lua interface, and plays audio. The repository does not include Blizzard code or assets. You supply the data from your own installation and connect to a compatible server.
The scope is enormous for a young project. Our commit cf891dc checkout contained 1,796 files and about 742,416 lines of source, yet occupied only 30.7 MB before dependencies. Crates split file formats, world rendering, protocol handling, application systems, and other subsystems. The format readers and UI core do not depend on Bevy, and the world renderer can run without the game attached. That separation makes parts of Benilla useful to contributors beyond the player executable.
Version 0.2.0 covers the game, with a long fidelity tail
The README calls Benilla complete and fully playable. Release v0.2.0 lists character creation, quests, professions, dungeons, raids, battlegrounds, guilds, trade, mail, the auction house, pets, addons, sound, weather, and cinematics. Stock 1.12 interface files run from the user's installation, while popular period addons can load from the configuration directory. This is far beyond a renderer demo.
Completeness does not mean identical behavior. GitHub showed 434 combined open issues and pull requests on October 3, 2026. Issue 788 reports an unsigned health-gain number at level-up, and issue 789 reports several client messages reaching the server before login completes. Other reports compare lighting, sound, input, and UI details against the original executable. The queue is evidence of methodical fidelity work and a warning against assuming every corner matches build 5875.
What happened when we ran it
Our unprivileged Rust sandbox installed commit cf891dc in 52 seconds and fetched 639 packages. It had 3 CPUs and 12 GB of RAM. The repository itself had one CI workflow, no Dockerfile, and no tests directory. Those structural signals do not tell us whether inline or crate-level tests exist; they only describe what the lab scan found at the paths it checked.
The build command timed out at 900 seconds. The test command also timed out at 900 seconds. Its final output was still compilation: egui, benilla-world, arboard, triple_buffer, include_dir, kira, and bevy_egui appeared in the tail. No test pass or failure result was produced. The log shows unfinished compilation at the cap, not a broken assertion, missing asset, or compiler error. Assigning another cause would go beyond the evidence.
A successful 52-second install did not yield a binary
Rust's fetched packages are only the start here. Our install completed, but the 15-minute build window expired before producing a successful build result. The same happened before tests could report an outcome. Developers evaluating Benilla should expect a sizable first compilation and should cache the Cargo target directory in CI. We did not measure an incremental build, so we cannot say how much faster later changes would be.
The project pins its Rust toolchain, and release v0.2.0 says the first build fetches Rust 1.98.1 through rustup. Platform prerequisites differ. Linux needs ALSA and udev development packages plus pkg-config; macOS needs Xcode command-line tools; Windows uses MSVC build tools. Lua is built from source. None of that replaces the required game data or server, and there is no root Dockerfile to wrap the whole setup.
Game data and a Warden-free server are mandatory
WOW_DATA must point to the Data directory from an English 1.12.1 installation, or a WoW link at the repository root can point at the full install. Benilla defaults to a server on localhost:3724; WOW_HOST or the login screen can select another address. Credentials can be entered on screen, which is preferable to placing WOW_USER and WOW_PASS in a shell environment that other local processes or logs might expose.
Compatibility is deliberately narrow. The README says later expansions and other client versions are not planned, and Warden anticheat is also outside scope. Development targets VMaNGOS, while cMaNGOS is listed as compatible when Warden is off. The client keeps settings, screenshots, addons, and addon data under benilla-config/. Because the project provides no packaged downloads, a server operator who wants a branded build is expected to maintain a fork.
Daily activity does not make the build lightweight
GitHub showed 516 stars, a push on October 3, 2026, and multiple issues and pull requests updated that day. Version 0.2.0 had shipped six days earlier, on September 27. That is current maintenance by any ordinary reading. The release notes also connect fixes to issue numbers and describe a known playerbot problem rather than pretending the long tail is finished.
Benilla deserves attention as a clean-room engineering project and a playable base for people already inside the vanilla WoW ecosystem. It is a poor casual install. Our two 900-second timeouts mean we cannot endorse the build or test experience from this sandbox, and the required 1.12.1 assets prevent a self-contained check. Fork it if you need the client foundation and can own the compile, data, server, and fidelity work. Otherwise, choose a smaller piece.

