pandite

Pandite logo

Pandite

Sick and tired of slow or unresponsive image viewers? Pandite is for you.

CI Release MIT license Windows, macOS, Linux x64, ARM64 Rust 1.87 or later Direct3D 12, Metal, Vulkan No network code

Performance | Formats | Features | Install | Build

Pandite is a GPU image viewer for Windows, macOS and Linux, written in Rust with wgpu. It is one executable of 12 MiB. It has no account, no telemetry and no network code.

Made for people who are sick of image viewers that lock up and take their time to show a picture.

Performance

Time from program start to the picture on screen. Machine: AMD Ryzen 9 9950X3D, Windows 11, Direct3D 12.

File GPU First picture Full resolution
Sony ARW, 9504 x 6336 (60 MP) NVIDIA RTX 5090 47 to 60 ms 47 to 60 ms
Sony ARW, 9504 x 6336 (60 MP) AMD Radeon integrated 356 to 389 ms 356 to 389 ms
Sony JPEG, camera original AMD Radeon integrated 181 ms 571 ms
JPEG, 1280 x 720 NVIDIA RTX 5090 56 ms 56 ms

The test suite fails when a first picture takes longer than 200 ms for ARW or 300 ms for JPEG on the discrete GPU.

How Pandite gets these times:

Formats

37 file extensions. Details and limits: docs/formats.md.

Format Extensions Notes
JPEG .jpg .jpeg .jpe .jfif Baseline, progressive, lossless. Gray, YCbCr, RGB, CMYK, YCCK
PNG, APNG .png .apng Every color type and bit depth. Animation
GIF .gif Animation
WebP .webp Lossy, lossless, alpha. Animation
AVIF .avif 8, 10 and 12-bit, alpha, HDR (PQ, HLG)
HEIC, HEIF .heic .heif .hif Codec of the operating system. Not on Linux
JPEG XL .jxl Stills and animation, HDR
TIFF .tif .tiff Integer to 32-bit, float to 64-bit. LZW, Deflate, PackBits, JPEG, CCITT
BMP .bmp .dib 1 to 32 bits per pixel, RLE, bit fields
Targa .tga Color-mapped, true-color, gray, RLE
Icon, cursor .ico .cur Largest image in the file
QOI .qoi  
DDS .dds Legacy and DX10 headers, BC compression
KTX2 .ktx2 Uncompressed, BC, ETC, EAC, ASTC
OpenEXR .exr HDR, tone mapped
Radiance HDR .hdr HDR, tone mapped
SVG .svg System fonts, embedded and linked images
Photoshop .psd Stored composite image
Camera RAW .dng .cr2 .cr3 .nef .arw .raf .orf .rw2 .pef .srw See docs/formats.md

Writes PNG, JPEG, lossless WebP and BMP.

Features

Keys: docs/shortcuts.md, or F1 in the program. Text recognition: docs/text-recognition.md.

Install

With npx (Windows, macOS, Linux)

This needs Node.js 18 or later.

npx pandite

The command always installs the latest release of Pandite for your user. It reads the releases on GitHub each time it runs, and it checks the download against SHA256SUMS.txt. When an older Pandite is installed, the same command updates it.

To install a newer release only when one exists:

npx pandite update

To install one named release:

npx pandite -v 0.2.5

To remove Pandite:

npx pandite uninstall

npx keeps the installer that it downloaded before. To get the newest installer also, add @latest:

npx pandite@latest

From the release files

The files are on the releases page. In the commands, replace <version> with the version of the file.

Windows x64 and ARM64, setup program. Run pandite-<version>-<arch>-windows-setup.exe. It installs for your user, without administrator rights, and associates image files. It is not code-signed: at the SmartScreen warning, select More info, then Run anyway.

Windows x64 and ARM64, portable. Extract pandite-<version>-<arch>-windows-portable.zip. To add Pandite to Open with and Default apps, run this command once in the extracted folder:

.\pandite.exe --register

macOS 11 or later. Open pandite-<version>-universal-macos.dmg and drag Pandite to Applications. The app is signed and notarized by Apple.

Debian and Ubuntu x86_64, glibc 2.35 or later.

sudo apt install ./pandite_<version>_amd64.deb

Fedora and openSUSE x86_64, glibc 2.35 or later.

sudo dnf install ./pandite-<version>-1.x86_64.rpm

Other Linux x86_64, glibc 2.35 or later. This installs for your user:

tar -xzf pandite-<version>-x86_64-linux.tar.gz
cd pandite-<version>-x86_64-linux
./install.sh

On Windows, HEIC needs “HEIF Image Extensions” and “HEVC Video Extensions” from the Microsoft Store.

Omarchy

npx pandite asks about both steps on a first install and does them for you. To do both steps for a Pandite that is installed, run:

npx pandite --default --float

To do the steps by hand, use these commands. The desktop entry of Pandite is pandite.desktop.

  1. Make Pandite the default viewer for every format that it opens:

    desktop=$(ls ~/.local/share/applications/pandite.desktop /usr/share/applications/pandite.desktop 2>/dev/null | head -n 1)
    xdg-mime default pandite.desktop $(grep '^MimeType=' "$desktop" | cut -d= -f2 | tr ';' ' ')
    
  2. Make sure that the default is set. This command must print pandite.desktop:

    xdg-mime query default image/jpeg
    
  3. To open Pandite as a floating window, add this line at the bottom of ~/.config/hypr/hyprland.lua:

    o.window("pandite", { tag = "+floating-window" })
    

The system can report a Sony ARW file as image/tiff and not as image/x-sony-arw. Step 1 sets Pandite for both types, so ARW files open in Pandite. To see the type of a file, run:

xdg-mime query filetype <file>

Command line

pandite [options] [--] [<image>]

  --config-dir <dir>  keep settings in this folder
  --background        Windows: start hidden and wait for the first image
  --quit              Windows: end the pandite that waits in the background
  --register          Windows: add pandite to Open with and Default apps
                      for every supported file type (this user only)
  --unregister        Windows: remove what --register added
  -h, --help          show this help
  -V, --version       show the version

Settings file: %APPDATA%\pandite\settings.ini on Windows, ~/Library/Application Support/pandite/settings.ini on macOS, ~/.config/pandite/settings.ini on Linux. The file explains each setting.

Build

Rust 1.87 or later on Windows, 1.91 or later on macOS and Linux. Linux needs the libraries in docs/building.md.

cargo build --release -p pandite-app
./target/release/pandite

Store packaging: docs/store-submission.md (Microsoft Store), docs/mac-app-store.md (Mac App Store and App Sandbox test build).

License

MIT. Third-party licenses: docs/THIRD-PARTY-NOTICES.md.