Zstandard MIME Type

Learn what application/zstd means, how to identify and decompress Zstandard data, and how Poly handles .zst files.

MIME type details for application/zstd

In active use
MIME typeapplication/zstd
Extensions
.zst
Magic number28 B5 2F FD
First standardized2016
Created byYann Collet at Facebook
Browser supportNo native file preview
Example applicationsZstandard CLI, GNU tar
Poly supportPartial. Poly recognizes .zst as application/zstd and stores, syncs, shares, and versions the file, but does not decompress it.
Indexed by PolyPartial. Poly indexes the Zstandard file's name and ordinary file properties, but not the compressed data or any tar members.
Preview in PolyNo. Poly has no in-app Zstandard decompressor or archive browser; download the file and open it with a compatible utility.
Poly agentNo. The Poly agent cannot read or reason about content inside a Zstandard stream.

What does application/zstd mean?

The application/zstd media type identifies a byte stream compressed with Zstandard, usually shortened to zstd and stored in a .zst file. Zstandard is lossless, so decompression reproduces the original bytes exactly.1

The format compresses a stream of bytes. It does not provide a directory of files, filenames, permissions, or other multi-file archive features. A .tar.zst file combines two layers: a TAR archive supplies the file tree, then Zstandard compresses the complete tar stream.

application/zstd is also different from HTTP Content-Encoding: zstd. The media type says that the representation itself is Zstandard data. A content encoding is a transport layer that a compatible browser removes before interpreting the response's original media type.12

Where did Zstandard come from?

Yann Collet developed Zstandard at Facebook for fast, general-purpose lossless compression. Facebook announced the stable Zstandard 1.0 release on August 31, 2016. The design combined LZ77-style matching with Finite State Entropy and Huffman coding, with particular attention to fast decompression and modern processors.3

The IETF first documented the format and registered application/zstd in RFC 8478 in 2018. RFC 8878 replaced that document in February 2021. It registers the media type, the zstd HTTP content coding, and the +zstd structured syntax suffix.1

RFC 8878 is an Informational RFC, not an Internet Standards Track specification. The media type is nevertheless registered with IANA for common use, with .zst as its registered extension and no deprecated aliases.1

How do you identify a .zst file?

A normal Zstandard frame begins with this four-byte signature:14

28 B5 2F FD

The RFC writes the same value as 0xFD2FB528 in little-endian form. The byte sequence is useful for identification, but it does not prove that the rest of the stream is valid.

A .zst stream can concatenate multiple independent frames. It can also contain skippable frames, whose magic numbers range from 50 2A 4D 18 through 5F 2A 4D 18. Skippable frames carry application-defined data that a compliant decoder ignores.4

Use the reference command-line tool to validate the complete compressed input without saving its output:

zstd --test download.zst

You can inspect available size, ratio, and checksum information with zstd --list download.zst. Some fields are optional and may not be present.5

How do you open an application/zstd file?

Web browsers do not provide a general-purpose .zst file viewer. Browser support for Zstandard HTTP content encoding does not turn a downloaded .zst file into a browsable document. Save the file and use a decompression utility.

The reference zstd tool provides zstd, unzstd, and zstdcat. To decompress while keeping the compressed input:

zstd -dk report.csv.zst

The Zstandard frame does not store the source filename or file attributes. The CLI normally derives the output name by removing .zst.5 The decompressed result could be text, an image, a database, a TAR archive, or any other byte sequence.

For a .tar.zst archive, inspect member names before extracting:

tar --zstd -tf source.tar.zst
tar --zstd -xf source.tar.zst -C empty-directory

GNU tar supports the .zst and .tzst suffixes and can invoke the zstd program as its compression filter.6

Support in Poly

Poly recognizes .zst filenames as application/zstd and classifies them as archives. It can store, sync, share, version, download, and find the file by name.

Poly treats the compressed stream as opaque:

  • It does not decompress the Zstandard data or inspect a TAR archive inside it.
  • It does not index decompressed text, tar member names, or member metadata.
  • It does not generate a thumbnail or provide an in-app archive browser.
  • The Poly agent cannot read or reason about the compressed payload.

Poly's filename inference recognizes the final .zst extension, including a compound name such as backup.tar.zst. It does not map the .tzst shorthand to application/zstd.

Download and decompress the file with a trusted utility when you need its contents. Adding the decompressed result to Poly separately lets that result use the preview and indexing pipeline for its own format.

Zstandard, Gzip, XZ, and TAR are different layers

These formats solve related but distinct problems:

FormatTypical extensionWhat it provides
Zstandard.zstFast, tunable lossless compression for a byte stream
Gzip.gzDEFLATE compression in a Gzip wrapper
XZ.xzA stream container commonly using LZMA2 compression
TAR with Zstandard.tar.zst or .tzstA TAR member archive wrapped in Zstandard compression

Renaming backup.tar.zst to backup.tar does not decompress it. One Zstandard decompression step produces the tar stream, after which a tar program can list or extract the members.

To convert a .tar.zst file to ZIP, first extract it safely, then create a new ZIP archive from the extracted tree. For a plain .zst file, decompress it first and identify the resulting format before choosing a conversion target.

Dictionaries and interoperability

Zstandard can use a trained dictionary to improve compression of many small, similar inputs. The dictionary is not embedded in the compressed content. A frame may carry a dictionary ID, but the decoder still needs the matching dictionary from somewhere else.14

The reference CLI uses -D dictionary for both compression and decompression. Without the correct dictionary, a dictionary-dependent file cannot be reconstructed.5

RFC 8878 says content sent as application/zstd should not depend on a dictionary unless the parties have a private dictionary-negotiation arrangement. Following that rule keeps a standalone MIME payload decodable without an undocumented external file.1

Safety, integrity, and metadata

Compressed data can expand far beyond its downloaded size. A frame can also request a large decoder window, and the decompressed size may be absent from its header. Apply memory, output-size, and time limits when processing untrusted files. The reference CLI provides --memory to cap decompression memory.45

Zstandard frames can include an optional 32-bit content checksum. The reference CLI enables the check by default when compressing files, but the format does not require it.45 A valid checksum detects accidental corruption. It does not authenticate the source or establish that the decompressed content is safe.

If the output is a TAR archive, inspect member paths and links before extraction. Absolute paths, parent-directory references, symbolic links, executables, and unexpectedly large members can be dangerous even when the outer Zstandard stream is valid.

Skippable frames deserve separate privacy attention. Their user-defined payload can contain tracking identifiers or other metadata that ordinary decompression silently ignores. The format specification recommends scanning for skippable frames when hidden metadata is a concern.4

Footnotes

  1. Internet Engineering Task Force. RFC 8878: Zstandard Compression and the application/zstd Media Type. The RFC defines the format, media type, extension, magic number, dictionary interoperability rule, content coding, and structured syntax suffix. 2 3 4 5 6 7
  2. MDN Web Docs. Content-Encoding Header. MDN explains HTTP content encoding and lists zstd as the coding defined by RFC 8878.
  3. Meta Engineering. Smaller and Faster Data Compression with Zstandard. The announcement introduces Zstandard 1.0, its design goals, implementation, and entropy-coding approach.
  4. Meta Platforms. Zstandard Compression Format. The format specification documents frames, signatures, optional checksums, window limits, dictionaries, concatenation, and skippable metadata. 2 3 4 5 6
  5. Meta Platforms. Zstandard Command-Line Interface Manual. The manual documents .zst naming, decompression, testing, listing, dictionaries, checksums, and memory limits. 2 3 4 5
  6. Free Software Foundation. GNU tar Manual: Creating and Reading Compressed Archives. The manual documents the Zstandard filter and the .zst and .tzst suffixes.
© Poly Corp. 2026