Skip to content
Back to Blog
informational

Was ist Zstandard (zst)? Facebooks Kompressionsalgorithmus

2026-05-17 8 min read

Die Kurzversion: Was Zstandard eigentlich ist

Zstandard – oft als zstd mit der Dateierweiterung .zst abgekürzt – ist ein verlustfreier Datenkompressionsalgorithmus von Yann Collet bei Facebook (heute Meta). Er wurde 2016 als Open Source veröffentlicht und fand schnell Anklang; der Linux-Kernel hat ihn in Version 5.16 übernommen. Facebook selbst setzt zstd in seiner riesigen Infrastruktur ein und komprimiert damit alles von Datenbank-Snapshots bis hin zu Log-Dateien. Das Format ist heute ein offizieller Internetstandard, vollständig dokumentiert in RFC 8878. Im Kern kombiniert zstd einen wörterbuchbasierten LZ77-Ansatz mit einem modernen Entropie-Coder namens Asymmetric Numeral Systems (ANS). Praktisch bedeutet das, dass es Daten mit unglaublicher Geschwindigkeit komprimiert und dekomprimiert, oft ohne dabei viel Kompressionsrate im Vergleich zu langsameren, traditionelleren Algorithmen einzubüßen. Die .zst-Erweiterung kennzeichnet das Single-Stream-komprimierte Format. Du wirst auch .tar.zst sehen, was einfach ein mit zstd komprimiertes Tar-Archiv ist, genau wie die bekannten .tar.gz oder .tar.bz2. Wenn du kürzlich ein Linux-Paket, ein Datenbank-Backup oder einen großen Datensatz heruntergeladen hast, ist die Wahrscheinlichkeit groß, dass es sich um eine .zst- oder .tar.zst-Datei handelte.

Wie Zstandard im Vergleich zu gzip, bzip2 und xz abschneidet

Wenn du ein Kompressions-Tool wählst, wägst du immer drei Faktoren ab: wie klein die Ausgabe wird (Kompressionsrate), wie schnell es komprimiert und wie schnell es dekomprimiert. Zstandard wurde von Grund auf so konzipiert, dass es das ehrwürdige gzip an allen drei Fronten gleichzeitig übertrifft – eine Behauptung, die zu gut klingt, um wahr zu sein, aber weitgehend standhält. Facebooks eigene Benchmarks auf dem Silesia-Korpus, einer Standard-Testsuite, zeigen zstd auf seiner Standardstufe (Stufe 3) mit einer 2.884-fachen Rate bei einer rasanten Kompressionsgeschwindigkeit von 500 MB/s und über 1.600 MB/s Dekompression. Zum Vergleich: gzips Standardstufe erreicht eine 2.743-fache Rate bei etwa 130 MB/s Kompression und 400 MB/s Dekompression. Die Zahlen lügen nicht: zstd ist in beide Richtungen schneller und komprimiert Dateien standardmäßig etwas stärker. Andere Tools wie bzip2 können eine bessere Rate (etwa 3.0x) erzielen, aber in Schneckentempo, oft unter 20 MB/s für die Kompression. Und während xz die Raten über 3.2x treibt, macht seine Kompressionsgeschwindigkeit von unter 10 MB/s es zu einem No-Go für alles Zeitkritische. Zstds wahre Stärke kommt von seinen 22 Kompressionsstufen. Stufe 1 dreht sich ganz um Geschwindigkeit, perfekt zum Komprimieren von Netzwerkverkehr in Echtzeit. Am anderen Ende konkurrieren die Stufen 19–22 (die „Ultra“-Modi) mit der Kompressionsrate von xz, während sie immer noch um eine Größenordnung schneller dekomprimieren. Die meisten Leute bleiben im Bereich 3–9. Unter Linux kannst du das einfach steuern: `zstd -9 myfile.tar` benötigt mehr CPU-Zeit, erzeugt aber eine kleinere Datei als das Standard `zstd -3 myfile.tar`.

Wörterbuchtraining: Die Funktion, die die meisten Leute überspringen

Wörterbuchkompression ist eine der mächtigsten – und am meisten übersehenen – Funktionen von zstd. Standard-Kompressionsalgorithmen arbeiten, indem sie wiederkehrende Muster innerhalb einer einzelnen Datei finden. Aber was ist, wenn die Datei winzig ist, wie eine 2 KB JSON-Nutzlast? Es gibt einfach nicht genug Daten, damit der Algorithmus ein nützliches Modell dessen, was sich wiederholt, aufbauen kann, daher ist die Kompressionsrate oft miserabel. In einigen Fällen kann die 'komprimierte' Datei sogar größer als das Original enden. Wörterbuchtraining ist die Lösung. Du kannst zstd eine große Datenstichprobe füttern – sagen wir, Tausende ähnlicher kleiner Log-Dateien oder JSON-Objekte – und es wird eine einzelne Wörterbuchdatei generieren, die all ihre gemeinsamen Muster erfasst. Dann verwenden sowohl der Kompressor als auch der Dekompressor dieses gemeinsame Wörterbuch als Ausgangspunkt. Facebook berichtete, mit dieser Technik eine 6-fache Kompression bei kleinen JSON-Blobs erreicht zu haben, die sich sonst kaum komprimieren ließen. Um es selbst über die Kommandozeile auszuprobieren, trainierst du zuerst ein Wörterbuch: `zstd --train /path/to/samples/* -o mydict.zst-dict`. Dann verwendest du es, um eine Datei zu komprimieren: `zstd -D mydict.zst-dict smallfile.json`. Der einzige Haken ist, dass der Dekompressor auch genau dieselbe Wörterbuchdatei benötigt. Das macht es zu einer operativen Herausforderung; du musst das Wörterbuch zusammen mit deinen Daten speichern und verteilen. Wer nutzt das also tatsächlich? Es ist ein Game-Changer für Datenbank-Ingenieure, Backend-Entwickler, die API-Antworten komprimieren, und jeden, der riesige Mengen strukturell ähnlicher kleiner Dateien verarbeitet. Für den Durchschnittsnutzer, der nur einen Ordner zippt, ist Standard-zstd mehr als genug.

Wo du tatsächlich .zst-Dateien findest

Du hast zstd wahrscheinlich schon benutzt, ohne es überhaupt zu merken. Der Algorithmus hat sich weit über die Server von Facebook hinaus verbreitet und ist heute ein kritischer Bestandteil der modernen Softwarelandschaft. Hier sind ein paar konkrete Orte, an denen du .zst-Dateien in der Praxis finden wirst: **Linux-Paketmanager.** Arch Linux vollzog den Wechsel von .tar.xz zu .tar.zst bereits im Jahr 2020 und nannte massive Verbesserungen bei der Paketinstallationsgeschwindigkeit als Grund. Fedora ist seitdem gefolgt. Wenn du `pacman -S` oder `dnf install` ausführst, lädst du .zst-komprimierte Dateien herunter und entpackst sie. **Der Linux-Kernel selbst.** Seit Version 5.16 können das Kernel-Image (bzImage) und initramfs mit zstd komprimiert werden. Einige Distributionen liefern jetzt standardmäßig zstd-komprimierte Kernel für eine merklich schnellere Bootzeit aus. **Datenbank- und Speichersysteme.** Facebooks eigenes RocksDB verfügt über native zstd-Unterstützung, ebenso wie ClickHouse, eine beliebte Analyse-Datenbank, bei der zstd ein empfohlener Codec ist. PostgreSQL 15 hat sogar zstd-Unterstützung für seine logischen Replikationsnachrichten hinzugefügt. **Downloads großer Datensätze.** Geh zu Hugging Face oder anderen akademischen Archiven, und du wirst feststellen, dass viele Machine-Learning-Datensätze jetzt als .zst- oder .tar.zst-Dateien verteilt werden. Selbst der Common Crawl-Datensatz, historisch bekannt für seine .warc.gz-Dateien, verzeichnet mehr .zst-Exporte. **Spiel-Assets und Software-Distribution.** Mozilla verwendet zstd, um Firefox-Updates effizienter bereitzustellen, und einige Game Engines nutzen es intern für schnelles Asset-Streaming während des Gameplays. Die gute Nachricht ist, dass du für die meisten dieser Szenarien nichts Besonderes tun musst. Wenn du die Datei nur öffnen oder extrahieren musst, erledigen das die modernen Tools deines Systems, wie 7-Zip (Version 19.00 und höher unterstützt .zst), automatisch.

Öffnen und Konvertieren von .zst-Dateien ohne die Kommandozeile

Seien wir ehrlich, nicht jeder möchte im Terminal leben oder Kompressions-Flags auswendig lernen. Wenn dir eine .zst-Datei geschickt wurde und du nur den Inhalt herausbekommen musst, hast du mehrere einfache Optionen, je nach Betriebssystem. **Windows:** 7-Zip ist hier dein bester Freund. Es hat in Version 22.00 (veröffentlicht Juli 2022) volle zstd-Unterstützung hinzugefügt. Klicke einfach mit der rechten Maustaste auf die .zst-Datei, navigiere zu '7-Zip > Hier entpacken', und schon bist du fertig. Wenn es nicht funktioniert, hast du wahrscheinlich eine ältere Version; ein Update ist alles, was du tun musst. **macOS:** Das integrierte Archivierungsprogramm kann .zst noch nicht verarbeiten (Stand macOS Sequoia), aber der hervorragende und kostenlose Keka-Archiver macht es perfekt. Alternativ, wenn du Homebrew verwendest, erledigt ein schnelles `brew install zstd` gefolgt von `zstd -d file.zst` im Terminal die Arbeit. **Linux:** Du bist fast sicher abgedeckt. Das `zstd`-Kommandozeilen-Tool ist wahrscheinlich bereits installiert oder in deinem Paketmanager verfügbar. Zum Dekomprimieren führst du einfach `zstd -d file.zst` aus. Für ein Tar-Archiv ist `tar --use-compress-program=zstd -xf file.tar.zst` der klassische Befehl, obwohl viele moderne Systeme auch den einfacheren `tar -I zstd -xf file.tar.zst` unterstützen. **Browserbasierte Konvertierung:** Hier glänzt ein Tool wie CocoConvert. Wenn du eine .zst-Datei dekomprimieren musst, ohne Software zu installieren, kannst du sie auf CocoConvert hochladen und ihren Inhalt direkt in deinem Browser extrahieren. Das ist ideal für Single-Stream-.zst-Dateien von vernünftiger Größe. Für massive, Multi-Gigabyte-.tar.zst-Archive oder Dateien, die von einem benutzerdefinierten Wörterbuch abhängen, ist ein lokales Tool praktischer. CocoConvert ist diesbezüglich transparent: Es wurde entwickelt, um die gängigen Fälle brillant zu handhaben, nicht jeden möglichen Grenzfall.

Erstellen von .zst-Dateien: Wann es Sinn macht und wann nicht

Zstandard ist eine fantastische Wahl, wenn du Dateien für bestimmte Zielgruppen komprimierst: Entwickler, Systemadministratoren oder automatisierte Systeme, die es bereits unterstützen. Es ist perfekt für interne Archive, die Verteilung von Software oder die Übertragung von Daten, bei denen eine schnelle Dekompression am anderen Ende Priorität hat. Aber es ist absolut die falsche Wahl, wenn du eine Datei an eine nicht-technische Person sendest, die sie auf einem Standard-Windows-Rechner öffnen wird. Für diesen Job ist Zip immer noch König. Jedes moderne Betriebssystem verarbeitet .zip-Dateien sofort, ohne Fragen, ohne zusätzliche Software. Während zstd an Boden gewinnt, ist es für das zwanglose Teilen von Dateien einfach noch nicht so weit. Bleib bei dem, was funktioniert. Für das Archivieren deiner eigenen Dateien ist die Geschichte jedoch anders. Die Verwendung von zstd auf einer höheren Stufe (wie -9) ist ein brillanter Kompromiss. Jeder, der schon einmal auf einen Bildschirm gestarrt hat, während ein 10 GB großer Ordner mit xz komprimiert wurde, kennt den Schmerz – es kann 8–12 Minuten dauern. Derselbe Ordner könnte mit `zstd -9` nur 90 Sekunden dauern, was zu einer Datei führt, die nur geringfügig größer ist. Das ist ein Kompromiss, den ich jederzeit eingehe. Um eine .zst-Datei mit CocoConvert zu erstellen, kannst du deine Quelldatei hochladen und .zst als Ausgabeformat wählen. Die Standard-Kompressionsstufe ist für fast alles ausreichend. Beachte, dass CocoConvert einzelne Dateien komprimiert. Wenn du einen ganzen Ordner zu einem einzigen .tar.zst-Archiv bündeln möchtest, musst du zuerst die .tar-Datei auf deinem Rechner erstellen und sie dann komprimieren, oder einen lokalen Befehl wie `tar -I zstd -cf output.tar.zst folder/` verwenden.

Das ehrliche Fazit: Lohnt sich Zstandard zu lernen?

Seien wir ehrlich: Zstandard ist kein Nischenformat, das verschwinden könnte. Es ist tief im Linux-Kernel verankert, wird von großen Datenbanken verwendet und von Paketmanagern für riesige Linux-Distributionen übernommen. Mit der Unterstützung von Meta und einer florierenden Open-Source-Community sowie der offiziellen RFC-Standardisierung ist es garantiert ein stabiler, langfristiger Bestandteil des Software-Ökosystems. Für Entwickler und Systemadministratoren wird das Erlernen der Nutzung von zstd zu einer Basisfähigkeit. Das Verständnis der Kompromisse zwischen Kompressionsstufen, das Wissen, wann ein Wörterbuch dich retten kann, und das Erfassen der Beziehung zwischen .zst und .tar.zst wird dir direkt Zeit und Ressourcen sparen, wenn du moderne Infrastruktur verwaltest. Für alltägliche Nutzer ist die Quintessenz viel einfacher. Wenn du eine .zst-Datei siehst, weißt du, was es ist: ein komprimiertes Archiv. Es ist kein Video oder ein seltsames Dokument, nur ein Container. Und du weißt, dass du einfache Möglichkeiten hast, es zu öffnen, sei es durch ein Update von 7-Zip unter Windows, die Anschaffung von Keka für macOS oder die Nutzung eines Web-Tools wie CocoConvert. Aber zstd hat nicht alles erobert. Seine eine verbleibende Schwäche ist das zwanglose Teilen von Dateien von Person zu Person. Solange Windows und macOS .zst-Dateien nicht einfach durch Doppelklick öffnen können, so wie sie es mit .zip tun, wird es ein Format bleiben, das vom Empfänger etwas zusätzlichen Aufwand erfordert. Für fast alles andere – Server-Workloads, Software-Distribution, Datenbankkompression und groß angelegte Archivierung – hat zstd bereits gewonnen. Es ist der neue sinnvolle Standard, und das aus sehr guten Gründen.