Compare
Brotli vs Zstandard
Brotli and Zstandard (zstd) are distinct lossless stream formats. Brotli is used as HTTP content coding br; Zstandard offers configurable framed compression, streaming, and dictionary workflows.
Which format should you choose?
Consider Brotli for precompressed web text in a setup that serves br. Consider zstd for application data exchange or configurable levels and dictionaries when all endpoints support it. Test client support, storage, and compression costs with real data.
Good fit for Brotli
Storing losslessly compressed streams · Compressing content for compatible HTTP delivery
- Precompressed web text when the server and client support Brotli
- Exchanging compressed data between Brotli-capable tools
Good fit for Zstandard
Losslessly compressing files and streams · Compressing software packages and data transfers
- Tuning compression speed and ratio when both endpoints support zstd
- Streaming or dictionary-based compression workflows
Basic information
| Field | Brotli | Zstandard |
|---|---|---|
| Extension | .br | .zst |
| MIME type | application/octet-stream | application/zstd |
| Common uses | Storing losslessly compressed streams · Compressing content for compatible HTTP delivery | Losslessly compressing files and streams · Compressing software packages and data transfers |
| How to open | Use a Brotli-capable decompression tool or library. For precompressed web delivery, send Content-Encoding: br to compatible requests and check file naming, media type, and cache configuration. | Use a zstd-capable decompression tool or library. Before processing an unfamiliar compressed file, check its source, expanded size, and available memory. |
| Export or convert | To convert to gzip or zstd, decompress and recompress. Verify the output with a checksum or content comparison, and measure size, encoding time, and receiver support. Do not infer HTTP headers or content only from the .br extension. | To convert to gzip or xz, decompress and recompress. Compare file contents or checksums afterward, and consider size, time, settings, and receiver compatibility. A tar.zst combines a tar archive with zstd compression; .zst alone is not an archive. |
Choose by use case
Precompressed web text when the server and client support Brotli
Storing losslessly compressed streams · Compressing content for compatible HTTP delivery
BrotliExchanging compressed data between Brotli-capable tools
Storing losslessly compressed streams · Compressing content for compatible HTTP delivery
BrotliTuning compression speed and ratio when both endpoints support zstd
Losslessly compressing files and streams · Compressing software packages and data transfers
ZstandardStreaming or dictionary-based compression workflows
Losslessly compressing files and streams · Compressing software packages and data transfers
ZstandardKey point 1
The formats are not byte-compatible; conversion requires decompression and recompression.
More on the differencesKey point 2
Brotli can be served as HTTP Content-Encoding: br and as a precompressed .br file. Zstandard has the application/zstd media type and needs zstd support at the receiver.
More on the differencesMore on the differences
Choose for the delivery protocol and receiving tools, not an assumed universal size or speed win. Both formats compress streams rather than archiving multiple files; share any required dictionary assumptions with decoders.
- Brotli and zstd use different frame or stream structures and cannot directly decode each other's data.
- Brotli is a common web content coding. Zstandard supports configurable levels and optional dictionaries for suitable applications.
- Compression ratio and speed depend on content, settings, and implementation. Convert by decoding then re-encoding, and verify output integrity.
Frequently asked questions
Can I rename a .br file to .zst?
No. Renaming does not convert the compressed data; decompress it and recompress with a zstd encoder.