Sick and tired of slow or unresponsive image viewers? Pandite is for you.
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.
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:
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.
Keys: docs/shortcuts.md, or F1 in the program. Text recognition: docs/text-recognition.md.
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
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.
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.
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 ';' ' ')
Make sure that the default is set. This command must print
pandite.desktop:
xdg-mime query default image/jpeg
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>
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.
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).
MIT. Third-party licenses: docs/THIRD-PARTY-NOTICES.md.