Was ist WebAssembly?
WebAssembly (Wasm) ist ein binäres Befehlsformat, das als portables Kompilierziel für Sprachen wie C, C++ und Rust entwickelt wurde. Damit läuft Code im Webbrowser mit nahezu nativer Geschwindigkeit. Seit 2019 ist WebAssembly eine W3C-Empfehlung und wird von allen großen Browsern unterstützt, darunter Chrome, Firefox, Safari und Edge.
Für die Dateiverarbeitung heißt das: Aufwendige Aufgaben wie PDF-Bearbeitung, Bildkomprimierung oder Texterkennung per OCR lassen sich komplett im Browser erledigen, ohne Umweg über einen Server. Web-Apps wie Photopea und Figma setzen auf WebAssembly. Die lokalen Tools von Allin PDF nutzen dieselbe Browser-Plattform: JavaScript- und WebAssembly-Bibliotheken, die in Web Workern laufen. So bleibt die Seite bedienbar, während Ihre Datei auf Ihrem Gerät verarbeitet wird.
Wie pdf-lib, PDF.js und Tesseract.js Dateien im Browser verarbeiten
Die lokalen Tools von Allin PDF bauen auf drei Open-Source-Bibliotheken auf. Nicht alle davon sind WebAssembly, aber alle laufen auf Ihrem Gerät:
pdf-lib: PDF-Bearbeitung im Browser
pdf-lib ist eine JavaScript-Bibliothek (TypeScript), die PDF-Dokumente vollständig auf dem Client erstellt und verändert. Sie fügt Seiten zusammen, teilt und sortiert sie, fügt Text ein und bettet Bilder ein, ganz ohne Serveraufrufe. pdf-lib selbst ist reines JavaScript, kein WebAssembly. Moderne JavaScript-Engines übersetzen es in schnellen Maschinencode, und im Web Worker blockieren auch große Aufträge die Seite nicht.
PDF.js: PDF-Seiten darstellen
PDF.js ist die PDF-Engine von Mozilla, dieselbe, die in Firefox steckt. Sie liest PDF-Seiten ein und zeichnet sie, was Tools wie PDF in Bild umwandeln benötigen. PDF.js ist überwiegend in JavaScript geschrieben; neuere Versionen nutzen WebAssembly für einige Bilddecoder.
Tesseract.js: OCR ohne Server
Tesseract.js ist die WebAssembly-Portierung der OCR-Engine Tesseract. Die Engine lässt sich für viele Sprachen trainieren; die kostenlose OCR von Allin PDF bietet fünf: Englisch, vereinfachtes Chinesisch, traditionelles Chinesisch, Japanisch und Koreanisch. Deutsch gehört nicht dazu, deshalb werden Umlaute und ß oft falsch erkannt. Für deutsche Texte eignet sich die KI-OCR im Pro-Tarif besser. Die Sprachdaten werden bei der ersten Nutzung heruntergeladen, danach läuft die Erkennung im Browser-Tab, ohne dass Ihr Bild oder PDF hochgeladen wird.
Leistung: WebAssembly im Vergleich zu nativen Anwendungen
Ist die Verarbeitung im Browser langsamer als ein Desktop-Programm? Bei alltäglicher PDF-Arbeit merkt man meist kaum einen Unterschied. Die tatsächliche Geschwindigkeit hängt von Gerät, Browser und Datei ab. Die Tabelle zeigt, was bei Allin PDF die Arbeit erledigt und wovon das Tempo abhängt:
| Vorgang | Was die Arbeit erledigt | Wo es läuft | Was die Geschwindigkeit beeinflusst |
|---|---|---|---|
| PDF komprimieren | pdf-lib plus Neukodierung der Bilder | Ihr Browser | Anzahl und Größe der Bilder, Komprimierungsstufe |
| PDFs zusammenfügen (2–20 Dateien) | pdf-lib (Seiten werden unverändert kopiert) | Ihr Browser | Gesamtgröße und Seitenzahl |
| OCR einer Seite | Tesseract.js (WebAssembly) | Ihr Browser | Bildauflösung, CPU, erster Download der Sprachdaten |
| PDF verschlüsseln (AES-256) | PDF-Verschlüsselung im Browser | Ihr Browser | Dateigröße |
| PDF als Bild rendern | PDF.js | Ihr Browser | Seitenzahl, Ausgabeauflösung |
Grundsätzlich ist WebAssembly etwas langsamer als derselbe Code, nativ kompiliert. Der Abstand schrumpft, weil die Browser ihre Wasm-Compiler laufend verbessern. Bei einem typischen PDF fallen Dateigröße, Bildanteil und Arbeitsspeicher Ihres Geräts stärker ins Gewicht.
Sicherheitsmodell: Warum die Sandbox wichtig ist
WebAssembly bietet durch sein Sandbox-Modell starke Sicherheitsgarantien:
- Speicherisolierung: Wasm-Code arbeitet in einem eigenen linearen Speicher, getrennt vom Rest des Browsers. Er hat keinen Zugriff auf andere Tabs, Cookies oder Systemressourcen.
- Kein direkter Systemzugriff: Wasm kann von sich aus weder Ihr Dateisystem lesen noch ins Netz gehen oder Betriebssystem-APIs aufrufen. Es verarbeitet nur, was das JavaScript der Seite ihm ausdrücklich übergibt.
- Same-Origin-Policy: Wasm-Module unterliegen denselben Sicherheitsregeln wie JavaScript. Ohne CORS-Header gibt es keinen Zugriff auf Daten anderer Ursprünge.
- Prüfung vor der Ausführung: Jede Wasm-Datei wird vor dem Start validiert. Fehlerhafter Code wird abgewiesen, und viele Speicherfehler, wie sie in nativen Programmen häufig vorkommen, werden verhindert.
Die Zukunft browserbasierter Tools
WebAssembly entwickelt sich weiter, und neue sowie geplante Funktionen verkleinern den Abstand zu nativen Apps zusätzlich:
- WASI (WebAssembly System Interface): eine standardisierte Systemschnittstelle für Datei-I/O und Netzwerk, vor allem für Wasm außerhalb des Browsers
- Threads und SIMD: Mehrkern-Wasm mit SIMD-Befehlen beschleunigt die parallele Arbeit an großen Dateien
- Garbage Collection: eingebaute GC-Unterstützung erlaubt es, Sprachen wie Java, Kotlin und Dart effizient nach Wasm zu kompilieren
- Komponentenmodell: Wasm-Module aus verschiedenen Sprachen lassen sich zu einer Anwendung kombinieren
Die Richtung ist klar: Immer mehr Desktop-Anwendungen wandern in den Browser. Für sensible Dateien wie PDFs, Dokumente und Bilder bieten lokale Browser-Tools eine gute Mischung aus Tempo, Datenschutz und Komfort.
Häufige Fragen
Funktioniert WebAssembly in mobilen Browsern?
Ja. WebAssembly läuft in Chrome für Android, Safari auf iOS und Firefox für Android. Smartphones haben weniger Rechenleistung und Arbeitsspeicher als ein Desktop-PC, deshalb dauern große Dateien länger. Übliche Aufgaben wie PDFs komprimieren oder zusammenfügen klappen auf aktuellen Smartphones aber problemlos.
Kann WebAssembly ohne Erlaubnis auf meine Dateien zugreifen?
Nein. WebAssembly hat keinen direkten Zugriff auf Ihr Dateisystem. Sie wählen die Dateien selbst aus, per Dateiauswahl oder Drag-and-drop. Der Wasm-Code verarbeitet nur die Daten, die Sie ihm geben, und kann keine anderen Dateien auf Ihrem Gerät durchsuchen oder lesen.
Ersetzt WebAssembly JavaScript?
Nein. WebAssembly ergänzt JavaScript. Für Bedienoberfläche, DOM-Manipulation und Anwendungslogik bleibt JavaScript die erste Wahl. Wasm übernimmt rechenintensive Aufgaben wie Komprimierung, Parsing oder OCR, bei denen nahezu native Geschwindigkeit zählt. Die meisten modernen Web-Apps nutzen beides.