2026-09-08
WebAssembly lets browsers run compiled code at near-native speed, and Web Workers add real multithreading. That is enough to run a full LibreOffice suite, a Python runtime (Pyodide) and OCR models entirely on your device.
High-performance shared memory (SharedArrayBuffer) requires the page to be cross-origin isolated: the server sends COOP and COEP headers declaring that every resource on the page is trusted. Without them, heavy engines that rely on shared memory cannot start.
This is also why third-party scripts (such as ads) must carry the crossorigin attribute here — every cross-origin resource has to pass the same security check.
The Office-to-PDF engine contains a nearly complete LibreOffice — about 236 MB raw, roughly 58 MB over the wire thanks to Brotli compression; in-browser Python with its scientific packages and OCR language models add tens more. They download once on first use, then the browser caches them — no repeated downloads.
Open your browser's Network panel and run a conversion: you will see engine downloads, but no request that POSTs your document anywhere. Processing is fully local — with engines cached, parts of the workflow even work offline.