Skip to content

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 .pyi stubs — 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 .pyi stub 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.