Skip to content

Repository files navigation

riv

A fast, precise, minimal image viewer for Windows.

Context menu   Info panel: EXR with display color mode, gamut, and HDR luminance

Features

  • Rendering
    • Windows Advanced Color: WCG/HDR, PQ/HLG, embedded/display ICC profiles
    • FP16 linear render pipeline, FP16 scRGB output
    • HDR passthrough on HDR, HDR tone-mapped on SDR
    • Ultra HDR gain maps on HDR
    • Dither: Ordered or Fruit (8-bit output only)
  • 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, no installation
    • Settings stored in riv.json next to riv.exe

Running as administrator is blocked at startup.

Supported formats

Formats that need a codec extension from the Microsoft Store:

Format Store extension Notes
JPEG XL JPEG XL Image Extension (Microsoft Corporation) HDR / Tone map
AVIF HEIF Image Extension + AV1 Video Extension (Microsoft Corporation) HDR / Tone map
WebP WebP Image Extensions (Microsoft Corporation)
Camera RAW Raw Image Extension (Microsoft Corporation)

These extensions are free and need no sign-in.

Formats with an optional codec extension:

Format Store extension Notes
HEIC / HEIF HEIF Image Extension + HEVC Video Extensions (Microsoft Corporation) HDR / Tone map

HEVC Video Extensions is paid.

HEVC Video Extensions from Device Manufacturer (Microsoft Corporation) is the same codec for free, but it installs only on eligible devices.

When either HEVC extension is installed, it takes precedence; otherwise the built-in decoder handles HEIC / HEIF. Neither is required.

Decoded by built-in codecs:

Format Decoder Notes
EXR OpenEXR HDR / Tone map
HEIC / HEIF libheif + libde265 HDR / Tone map
AVIF libheif + dav1d Animated only
WebP libwebp Animated only
PNG png Animated only
SVG / SVGZ resvg Vector only

Decoded by Windows Imaging Component codecs:

Format Notes
JPEG Ultra HDR
JPEG XR HDR / Tone map
DDS BC1-BC3
BMP, DIB, GIF, ICO, PNG, TIFF

Archives browsable as image folders: zip, 7z, rar, tar, and cbz / cbr / cb7 / cbt.

Requirements

  • Windows 11 23H2 or later, x86-64-v3 (AVX2)
  • Direct3D 12 capable GPU

Building

The build cross-compiles from Linux (tested on WSL) to x86_64-pc-windows-msvc.

Prerequisites:

  • CMake, Ninja, Meson, and NASM, for static codec dependencies.
  • Wine, for the tests and for compiling the HLSL shaders.
  • LLVM 23: clang, clang-cl, lld-link, llvm-lib, llvm-rc, llvm-mt, llvm-strip.
  • Rust with the x86_64-pc-windows-msvc target.
  • A Windows CRT + SDK splat from xwin in ~/.xwin (override the location with XWIN_ROOT).

Ubuntu 26.04 packages:

sudo apt-get install cmake ninja-build meson nasm wine git

LLVM 23 from apt.llvm.org:

wget -qO llvm.sh https://apt.llvm.org/llvm.sh
sudo bash llvm.sh 23

LLVM tools on PATH:

export PATH="/usr/lib/llvm-23/bin:$PATH"

Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add x86_64-pc-windows-msvc

xwin:

cargo install xwin
xwin --accept-license splat --output ~/.xwin

Static build of the C/C++ codecs:

./deps/build_deps.sh

Build:

cargo build --release

Acknowledgments

Inspired by qView.

mpv and libplacebo served as references for the context menu, dithering, and the aspect ratio table.

Ultra HDR test images come from Mishaal Rahman's samples, with SDR emulations by Dylan Raga (CC BY 4.0).

License

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).

About

A fast, precise, minimal image viewer for Windows.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages