How our tools work

Last updated: 10 October 2026

Every NoUploadPDF tool works on your file inside your own browser, on your phone or computer. This website only sends you the page and the tool, and your file is never uploaded. Below: what happens to your file, step by step, and what is inside the tools.

This website nouploadpdf.online Sends the page and its tool Your phone or computer Your file never uploaded The tool works on it in your browser's memory Your new file made in memory too Saved to your device like any download
The website sends the tool, and your browser keeps it for next time. Your file stays on your phone or computer from start to finish.

What happens to your file, step by step

  1. You open a tool. Your browser downloads the page, its styles, its scripts, our fonts and the engine that tool needs, all from this site. Your browser keeps the engine and the scripts for next time. Google's ad code, which pays for the site, comes on top.
  2. You choose a file. Your browser hands it to the page, and the page reads it into your device's memory. The tools that draw pages with pdf.js read a big PDF in pieces, as they need them, instead of all at once.
  3. The tool works on it there. The work runs inside the page or in a background worker, a helper your browser runs beside the page so the screen stays responsive while a big file is worked on.
  4. The new file is made in memory. The result is built in your device's memory as a file your browser can save. There is no step where it goes to a server, because the tool has no upload step.
  5. You save it. Your browser saves it like any download, to the place it normally saves downloads. The site keeps no copy of your file, because there was no upload to keep.

That is the whole journey. The file never travels to a server and back, which is why a big file doesn't wait for a slow upload, and why we set no limit on how big a file can be. The engines table below shows what each engine downloads on a first visit.

What each tool does inside

Here is what the tools do with your file, by kind of job:

The engines inside the tools

An engine is the part of a tool that does the PDF work: reading a file, rebuilding it and writing the new one. We have three of our own, written in Rust and built on lopdf, an open-source Rust library for reading and writing PDF files. A fourth part, pdf.js, draws pages. This table is made by our build from what each tool really loads, so it stays current:

EngineWhat it isToolsDownload
The compressor engineOur own code in Rust, compiled to WebAssemblyCompress PDF, Resize PDF, Compress PDF to 100 KB, and Compress PDF to 200 KB0.46 MB
The pages engineOur own code in Rust, compiled to WebAssemblyMerge PDF, Split PDF, Rotate PDF, Organize PDF, Add Page Numbers, and Add Watermark0.21 MB
pdf.js 6.4.299Mozilla's PDF reader, the one built into Firefox: JavaScript, with WebAssembly for some kinds of picturesMerge PDF, Split PDF, PDF to JPG, PDF to PNG, PDF to Word, Rotate PDF, Organize PDF, Add Page Numbers, Add Watermark, PDF Viewer, and Compare PDF0.54 MB
The lock engineOur own code in Rust (the pages engine with its password part), compiled to WebAssemblyUnlock PDF and Protect PDF0.18 MB
No engineOur own JavaScript, in the page's script or fetched when a document needs itJPG to PDF, PNG to PDF, and Word to PDFIn the page's script, or when needed

The Download column is the size your browser receives, compressed, and only once: your browser keeps it for next time. Word to PDF fetches more when a document needs it: its converter, its fonts and HarfBuzz, the text engine browsers use to join letters, all from this site and only when a document calls for them. JPG to PDF and PNG to PDF need no engine, because JPG photos are copied into the PDF as they are.

Rust and WebAssembly, in plain words

WebAssembly is a standard format that lets a browser run fast programs written in languages such as Rust. Your browser runs it inside the same safety walls as the page, so a WebAssembly program can't open your files or folders on its own. It can only work on what the page hands it, which is the file you chose. It is a W3C standard (a W3C Recommendation since 2019) and all major browsers support it. Our testing runs in Chromium; how we test says what that covers and what it doesn't.

Our pages' Content Security Policy has a rule that allows WebAssembly. The proof page lists it as "WebAssembly (our engines)", next to scripts from this site and from Google's ad hosts, and the browser blocks every other source of scripts.

Rust is a programming language designed to avoid whole classes of memory mistakes, the kind that make a program crash or misbehave on input it did not expect. A PDF from the real world is often unexpected: scanned, repaired, locked, made by an old program. That is why we chose Rust for the engines: to handle unexpected files safely, not for speed. We don't claim they are faster than anyone else's.

pdf.js, the PDF reader inside Firefox

pdf.js 6.4.299 is Mozilla's PDF reader, the one built into Firefox. Our tools use it to draw pages: the previews in the page tools, PDF to JPG, PDF to PNG, PDF to Word, the PDF Viewer and Compare PDF. The table above shows which tools load it.

We keep our own copy on this site, at that version, and never fetch it from another site. It is open-source, under the Apache License 2.0. We left out its scripting sandbox on purpose, so a PDF's own scripts never run here, and XFA forms are switched off.

It keeps working offline

In our test on 9 October 2026, every tool but one finished its built-in sample with the test browser's network switched off. The one is Word to PDF: it downloads its converter and fonts from this site the first time a document needs them, so it needs the internet for that. PDF to JPG, PDF to PNG, PDF to Word, the PDF Viewer and Compare PDF read pages with pdf.js, which downloads a font or a decoder from this site the first time some PDFs need one, so a few PDFs need the internet once. The page tools draw their page previews the same way; saving the file doesn't need it. Try it with a file of your own: the compressor's sample is itself a part the page downloads when you press its button.

Your own check takes a minute:

  1. Open a tool and wait until it says Ready.
  2. Turn off Wi-Fi and mobile data, or switch on airplane mode.
  3. Add your file. The tool finishes, and you can save the result.

The offline check on the proof page has pictures from our own test, including one at a phone's size.

Built on open standards

Using a standard is not the same as being certified. No outside body has certified NoUploadPDF against any of them.

What this means for you

Keep reading

Compress a PDF