mrkeyoor.com_
Sat 03 Oct 15:35 UTC
Dev Toolsevaluationupdated 03 Oct 2026

benilla review

Benilla is an independent World of Warcraft 1.12.1 game client written from scratch in Rust and Bevy. It connects to compatible private servers and reads maps, models, audio, interface files, and other game data from a legally obtained English 1.12.1 installation.

Verdict

Our Benilla build and test commands each ran for 900 seconds without finishing, so adopting this 742,416-line client means accepting long compile work before you can judge playability. It is a serious foundation for Rust and vanilla-WoW specialists who own the data and can test against a compatible realm. Everyone else should use an existing client or choose the narrower server, proxy, or file-format project that matches the actual job.

We ran it

Lab card: what happened when we ran benillaScreenshot of benilla (github.com/samwhosung/benilla)
Install✓ · 52s639 packages
Build✗ timed out · 900s
Tests✗ timed out · 900sran, no count parsed
Repo1796 files~742,416 lines of source · 30.7 MB · 1 CI workflows

Answers from our run

Does benilla build from source?

Dependencies installed in 52 seconds (639 packages), and the build failed. We cloned commit cf891dc into a clean Debian container with 3 CPUs and no project-specific setup.

Do benilla's tests pass?

We could not finish them: the suite was still running after 15 minutes in our container.

Who should not use benilla?

Players looking for a download-and-play client: the project publishes no prebuilt binaries.

What are the alternatives to benilla?

VMaNGOS, CMaNGOS Classic, HermesProxy. Our Benilla build and test commands each ran for 900 seconds without finishing, so adopting this 742,416-line client means accepting long compile work before you can judge playability.

Setup1/5Both build and tests exceeded 900 seconds in our sandbox
Docs4/5Requirements, data boundaries, server setup, and scope are clear
Community4/5516 stars with same-day issues, fixes, and repository activity
Maturity3/5v0.2.0 is playable, but hundreds of issues track fidelity work

Who it’s for

Rust developers studying a full game client, asset pipeline, renderer, network protocol, and Lua interface engine.
Vanilla WoW players who own the English 1.12.1 data and accept compiling the client themselves.
Emulator contributors testing against VMaNGOS or CMaNGOS with Warden disabled.
Maintainers who want a clean-room client foundation they can fork and package for a specific server.

Who it’s NOT for

Players looking for a download-and-play client: the project publishes no prebuilt binaries.
Anyone without a legally obtained English World of Warcraft 1.12.1 installation, because Benilla ships no game assets.
Servers that require Warden, or users wanting later expansions: the README explicitly says neither is planned.
Teams with a 15-minute build or test ceiling: both commands timed out at 900 seconds in our sandbox.
Contributors expecting a small Rust workspace: our checkout contained about 742,416 source lines and installed 639 packages.

Setup reality

Our sandbox installed commit cf891dc in 52 seconds and fetched 639 packages. The build timed out after 900 seconds, and the test command also timed out after 900 seconds. The test log was still compiling dependencies and workspace crates, so it produced no pass or fail result.

Running Benilla needs stable Rust, a C compiler, platform libraries, an English 1.12.1 client data folder, and a compatible 1.12.1 server with Warden off. Linux additionally needs ALSA and udev development packages plus pkg-config.

There are no prebuilt downloads and no Dockerfile. The checkout held 1,796 files, about 742,416 source lines, and occupied 30.7 MB. WOW_DATA points at the game files; server address and optional login credentials use separate settings or environment variables.

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.

Alternatives

ProjectWhat it isPick it when
VMaNGOSA progressive vanilla World of Warcraft server core covering versions 1.2 through 1.12.pick this instead when you need the server side and will use an existing compatible client.
CMaNGOS ClassicA maintained classic-era World of Warcraft server emulator.pick this instead when your goal is hosting a classic realm rather than replacing the game client.
HermesProxyA connection proxy for VMaNGOS and CMaNGOS servers.pick this instead when protocol translation solves the compatibility problem without a new client.
warcraft-rsRust libraries and a CLI for parsing, converting, and checking World of Warcraft file formats.pick this instead when asset tooling is the job and a playable client would be unnecessary scope.

What people are saying

  1. [github-trending] samwhosung/benilla

Sources

  1. Benilla repository and README
  2. Benilla v0.2.0 release
  3. Level-up health display issue 788
  4. Pre-login opcode issue 789
  5. Benilla contribution guide

More dev tools reviews

pi-gui · toolkit · sqlfluff · ramda · ToolReplay · CUDA-for-AMD-Windows · the whole board →