A Rust library for parsing Doom WAD files, plus a GUI viewer binary built with Slint.
| Crate component | Description |
|---|---|
rwad (library) |
Parse IWAD/PWAD files — lumps, maps, textures, palettes, and more |
wadview (binary) |
GUI viewer for browsing WAD contents |
- WAD header and lump directory (IWAD/PWAD)
- Map geometry:
THINGS,LINEDEFS,SIDEDEFS,VERTEXES,SECTORS,SEGS,SSECTORS,NODES - Spatial structures:
BLOCKMAP,REJECT - Graphics:
PLAYPAL,COLORMAP,PNAMES,TEXTURE1/TEXTURE2,FLATs,DoomPicture(patches/sprites) - Texture composition via
RenderedTexture
# Build the library only
just build-lib
# Build wadview (debug)
just build
# Build wadview (release)
just build-releaseOr with plain Cargo:
cargo build --lib
cargo build --bin wadview# Launch with no file (open from the UI)
just run
# Launch with a specific WAD
just run-doom1
just run-doom2
# Override the default WAD path
just run-doom1 WAD=path/to/doom.wad
# Build release and run
just release-doom1The default WAD paths used by the just recipes are:
tests/common/fixtures/freedoom1.wad
tests/common/fixtures/freedoom2.wad
You can place Freedoom WADs there or override the path on the command line as shown above.
# Run all tests
just test
# Run with output visible
just test-verbose
# Run only Doom 1 / Doom 2 integration tests
just test-doom1
just test-doom2# Lint with clippy (warnings as errors)
just lint
# Format code
just fmtjust # lists all available recipes| Crate | Purpose |
|---|---|
binrw |
Declarative binary parsing |
thiserror |
Ergonomic error types |
clap |
CLI argument parsing for wadview |
image |
PNG export |
slint |
GUI framework for wadview |