A fast, precise, minimal image viewer for Windows.
- Rendering
- FP16 linear render pipeline, FP16 scRGB output
- HDR passthrough on HDR displays, HDR tone-mapped on SDR displays
- Output dither: Ordered or Fruit shader
- Color management: Windows Advanced Color with WCG/HDR, PQ/HLG, embedded/display ICC profiles
- Browsing
- Browse images inside archives (via archiveint.dll, shipped with Windows)
- Open http/https image URLs (via curl.exe, shipped with Windows)
- Animation playback with pause, frame stepping, speed control
- Configurable preloading that follows the browsing direction
- Application
- Customizable keyboard and mouse shortcuts
- Per-extension file associations, reversible with no registry leftovers
- Single portable executable (~7 MB), no installation
- Settings stored in
riv.jsonnext toriv.exe
Running as administrator is blocked at startup.
Formats that need a codec extension from the Microsoft Store:
| Format | Required extension |
|---|---|
| AVIF | HEIF Image Extension + AV1 Video Extension (Microsoft Corporation) |
| JPEG XL | JPEG XL Image Extension (Microsoft Corporation) |
| WebP (still) | WebP Image Extensions (Microsoft Corporation) |
| Camera RAW | Raw Image Extension (Microsoft Corporation) |
Required extensions are free and need no sign-in.
| Format | Optional extension |
|---|---|
| HEIC / HEIF | HEIF Image Extension + HEVC Video Extensions (Microsoft Corporation) |
HEVC Video Extensions is paid. Without it, the built-in decoder takes over.
Decoded by built-in codecs:
| Format | Decoder | Notes |
|---|---|---|
| HEIC / HEIF | libheif + libde265 | |
| SVG / SVGZ | resvg | Vector only |
| EXR | OpenEXR | |
| APNG | png | |
| Animated WebP | libwebp |
Decoded by Windows Imaging Component codecs:
| Format | Notes |
|---|---|
| PNG, JPEG, GIF, BMP, ICO, TIFF | |
| JPEG XR | HDR |
| DDS | BC1-BC3 |
Archives browsable as image folders: zip, 7z, rar, tar, and cbz / cbr / cb7 / cbt.
- Windows 11 23H2 or later, x86-64
- Direct3D 12 capable GPU
The build cross-compiles from Linux (tested on WSL) to x86_64-pc-windows-msvc.
Prerequisites:
- Rust with the
x86_64-pc-windows-msvctarget. - LLVM 22:
clang, clang-cl, lld-link, llvm-lib, llvm-rc, llvm-mt. Older releases can fail on the MSVC STL in the xwin splat. - A Windows CRT + SDK splat from xwin
in
~/.xwin(override the location withXWIN_ROOT). CMakeandNinja, for static codec dependencies.Wine, for the tests and for compiling the HLSL shaders.
On Ubuntu 26.04, everything but Rust and xwin comes from apt:
sudo apt-get install clang-22 lld-22 llvm-22 cmake ninja-build wine gitOnly the versioned directory carries the unversioned tool names:
export PATH="/usr/lib/llvm-22/bin:$PATH"Rust and xwin:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add x86_64-pc-windows-msvc
cargo install xwin
xwin --accept-license splat --output ~/.xwin./deps/build_deps.sh # static build of the C/C++ codecs
cargo build --releaseInspired by qView. mpv and libplacebo served as references for context menu, dither, aspect ratio table.
GPL-3.0-only (see LICENSE).
THIRD-PARTY-NOTICES.md lists the statically linked third-party components and their licenses. The application icon is derived from Fluent UI System Icons (MIT).

