wowlib¶
wowlib reads and writes World of Warcraft client files — a modern C++26 core, automatically bound to Python and Lua by welder. It exists to make community tooling — map viewers, model viewers, Blender add-ons, exploration projects — possible on top of one shared, well-tested file layer.
-
Filesystem gateway
One interface over MPQ (pre-WoD clients, via StormLib) and CASC (WoD+ clients, via CascLib), plus the listfile / FileDataID machinery.
-
Client file formats
A chunk framework and versioned entities: WMO, M2 (with its satellite files), ADT, WDT/WDL, BLP and the DBC/DB2 client databases — byte-perfect round-trips where the container allows it, semantic everywhere else. See Format support for the full per-client matrix.
-
Typed Python bindings
A stable-ABI (
abi3) extension for CPython ≥ 3.13 with rich.pyistubs — typed overloads, zero-copy NumPy views over WoW vectors. -
One source of docs
Every
[[=welder::doc]]annotation documents the C++ reference and the bound Python surface — no duplicated docstrings.
Two references, one site¶
- The Python API is generated by mkdocstrings from the
.pyistub tree — the typed surface you actually import. - The C++ API Reference is a full Doxygen site (source browser, class graphs) built from the real headers through welder's filter.
New here? Start with Getting started.