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

Requirements

  • Windows 11 23H2 or later, x86-64
  • Direct3D 12 capable GPU

Building

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

Prerequisites:

  • Rust with the x86_64-pc-windows-msvc target.
  • 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 with XWIN_ROOT).
  • CMake and Ninja, 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 git

Only 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 --release

Acknowledgments

Inspired by qView. mpv and libplacebo served as references for context menu, dither, aspect ratio table.

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