Skip to content

Repository files navigation

Tumbler icon

Tumbler

A PDF toolbox for Windows.

Built with Tauri v2 (Rust backend, React/TypeScript frontend) and pdfium.

CI Latest release License: MIT Rust Edition

Tumbler is a PDF viewer and toolbox. It is born from my frustration with apps that suddenly want money to do the next little bit. They almost get the job done, but not quite.

This app has lots of tools for manipulating PDFs. Almost everything I could think of, short of a full editor. It never asks for money.

This is the new world of AI. Anyone can make their own software, just the way they like it. That is what this is; my PDF toolbox, just the way I like it. That is why you will not find a Settings menu.

Features

  • Page operations: delete, rotate, reorder (drag-and-drop), merge, and split pages
  • Text layer with copy-to-clipboard and full-document search
  • Expand Margins — enlarge the page content to fill the margins. Sheet music is often engraved small inside wide borders; this scales every page up by one uniform factor so the notes get bigger without the layout shifting
  • OCR — make image-only pages searchable, selectable, copyable, and savable
  • Form Filling
  • Typewriter — type text anywhere on the page
  • Extract text to a file
  • View and Edit metadata
  • Native Windows printing
  • File compression
  • Open password-protected files; add, change, or remove a password (AES-256)
  • Detect ISO Standards
  • Verify Digital Signatures
  • Web Optimization - Linearize
  • Redaction

Tech stack

Layer Technology
Shell Tauri v2
Frontend React 18 + TypeScript, Vite, Zustand
PDF engine pdfium via pdfium-render, plus lopdf for metadata/CropBox edits
Printing/theming windows crate (GDI, PrintDlgExW, UISettings)
Testing Vitest + jsdom (frontend), cargo test (backend)

Getting started

Install (prebuilt)

The quickest way to run Tumbler is to grab a prebuilt Windows installer from the latest release (all releases are listed on the Releases page). Each release attaches two installers — use whichever you prefer:

  • NSISTumbler_<version>_x64-setup.exe
  • MSITumbler_<version>_x64_en-US.msi

These are self-contained (the required pdfium.dll and qpdf.dll are bundled), so nothing else needs to be installed. The rest of this section is only for building from source.

These installers are not yet digitally signed — an application to the SignPath Foundation is pending. See the Code Signing Policy for the intended arrangement and how signatures will be verified.

Prerequisites

  • Node.js 20+
  • Rust (stable) with the Tauri v2 prerequisites for Windows
  • A win-x64 pdfium.dll (e.g. from the pdfium-binaries releases), placed at src-tauri/resources/pdfium.dll (not checked into the repo)
  • A win-x64 qpdf DLL (used by "Save Web-Optimized Copy"): download the qpdf-<version>-msvc64.zip asset from the qpdf releases, take bin/qpdf30.dll, and place it at src-tauri/resources/qpdf.dll (not checked into the repo). The MSVC build depends at runtime on msvcp140.dll, vcruntime140.dll, and vcruntime140_1.dll from the same zip's bin/ folder — copy those three alongside qpdf.dll in src-tauri/resources/ too, so the app doesn't rely on the target machine having the Visual C++ redistributable installed

Setup

npm install

Run in development

npm run tauri dev

Build

npm run tauri build

Installers are written to src-tauri/target/release/bundle/:

  • NSIS: nsis/Tumbler_<version>_x64-setup.exe
  • MSI: msi/Tumbler_<version>_x64_en-US.msi

Test

npm test           # frontend (Vitest)
cargo test         # backend (from src-tauri/)

License

Tumbler is released under the MIT License.

The Windows installers also redistribute PDFium (BSD-3-Clause), qpdf (Apache-2.0) and the Microsoft Visual C++ runtime, each under its own terms. See THIRD-PARTY-NOTICES.md.

About

Personal PDF toolbox

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages