ZSTD (.zst)

Background & Context

    • MIME type: application/zstdZstandard (zstd) compression method and file format.
    • General-purpose lossless compression method.
    • Commonly used for archiving data and for exchanging files on the internet.
    • Developed by Yann Collet at Facebook in 2015.
    • Binary format.
    • Stores a single file.

Import & Export

  • Import["file.zst"] uncompresses file.zst and imports file, automatically inferring the format from the file contents.
  • Import["file.ext.zst",elem] imports the specified element from the uncompressed file "file.zst".
  • Import["file.ext.zst","format"] uncompresses a GZIP file and imports "file.zst" as "format".
  • Import["file.ext.zst",{"format",elements}] imports elements from "file.zst" as "format".
  • Import["file.ext.zst",{elem,suba,subb,}] imports a subelement.
  • The import format can be explicitly specified with Import["file.zst",{"Zstandard",}].
  • Export["file.ext.zst",expr] exports any expression expr to a Zstandard-compressed file whose format is implied by the file name extension .ext.
  • The export format and Zstandard compression method can be explicitly specified with Export["file",expr,{"Zstandard","format"}].
  • See the reference pages for full general information on Import and Export.
  • ImportString and ExportString can handle Zstandard-compressed data.

Import Elements

  • The Zstandard format itself does not support Import or Export elements.
  • Import elements of the Zstandard-compressed file:
  • "Elements" elements and options available in this file
    "Rules"full rules for each element and option
    "Options"rules for options, properties and settings
  • Import["file.ext.zst","Elements"] returns the names of elements available in file.ext, effectively unpacking the compressed file before importing "file.ext".

Options

  • General Export option:
  • CompressionLevelAutomaticZstandard compression strength, given as a number in the range 0 to 1
  • The setting CompressionLevel->1 corresponds to the strongest available compression, resulting in the smallest possible file size.

Examples

open allclose all

Basic Examples  (2)

Export a string to a ZSTD-compressed text file:

Convert the previous output back to a Wolfram Language string:

This exports graphics to a ZSTD-compressed JPEG file:

This gives the available Import elements of the JPEG file:

When importing any element from a .zst file, the Wolfram Language automatically uncompresses it:

Export Options  (2)

CompressionLevel  (2)

By default, the maximum amount of compression is used:

This is equivalent to CompressionLevel1:

Specify the minimum amount of compression:

Plot file size over increasing compression level:

Properties & Relations  (2)

Get some text to export:

Compare GZIP, BZIP2 and ZSTD compression to the uncompressed size:

Compare GZIP, BZIP2 and ZSTD compression speeds:

The amount of compression depends on the data being compressed. For example, JPEG images are already compressed and cannot be compressed any further by GZIP: