zlib-ng VS zstd

Compare zlib-ng vs zstd and see what are their differences.

zlib-ng

zlib replacement with optimizations for "next generation" systems. (by zlib-ng)

zstd

Zstandard - Fast real-time compression algorithm (by facebook)
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
zlib-ng zstd
14 116
1,630 24,215
1.9% 0.8%
9.0 9.8
6 days ago 7 days ago
C C
zlib License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

zlib-ng

Posts with mentions or reviews of zlib-ng. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-09-20.
  • Discord Reduced WebSocket Traffic by 40%
    2 projects | news.ycombinator.com | 20 Sep 2024
    For what it’s worth, the benchmark on the Zstandard homepage[1] shows none of the compressors tested breaking 1GB/s on compression, and only the fastest and sloppiest ones breaking 1GB/s on decompression. If you’re OK with its API limitations, libdeflate[2] is known to squeeze past 1GB/s decompressing normal Deflate compression levels. So asking for multiple GB/s is probably unfair.

    Still, 10MB/s sounds like the absolute minimum reasonable speed, and they’re reporting nearly three orders of magnitude below that. A modern compressor does not run at bad dialup speeds; something in there is absolutely murdering the performance.

    And it might just be the constant-time overhead, as far as I can see. The article mentions “a few hundred bytes” of payload, and the discussion of measurements implies 1.5KB uncompressed. Even though they don’t reinitialize the compressor on each message, that is still a very very modest amount of data.

    So it might be that general-purpose compressors are just a bad tool here from a performance standpoint. I’m not aware of a good tool for this kind of application, though.

    [1] https://facebook.github.io/zstd/#benchmarks

    [2] https://github.com/zlib-ng/zlib-ng/issues/1486

  • Show HN: Pzip- blazing fast concurrent zip archiver and extractor
    2 projects | news.ycombinator.com | 24 Sep 2023
    Please note that allowing for 2% bigger resulting file could mean huge speedup in these circumstances even with the same compression routines, seeing these benchmarks of zlib and zlib-ng for different compression levels:

    https://github.com/zlib-ng/zlib-ng/discussions/871

    IMO the fair comparison of the real speed improvement brought by a new program is only between the almost identical resulting compressed sizes.

  • Intel QuickAssist Technology Zstandard Plugin for Zstandard
    10 projects | news.ycombinator.com | 16 Aug 2023
  • Introducing zune-inflate: The fastest Rust implementation of gzip/Zlib/DEFLATE
    2 projects | /r/rust | 11 Feb 2023
    It is much faster than miniz_oxide and all other safe-Rust implementations, and consistently beats even Zlib. The performance is roughly on par with zlib-ng - sometimes faster, sometimes slower. It is not (yet) as fast as the original libdeflate in C.
  • Zlib Critical Vulnerability
    4 projects | news.ycombinator.com | 14 Oct 2022
    Zlib-ng doesn't contain the same code, but it appears that their equivalent inflate() when used with their inflateGetHeader() implementation was affected by a similar problem: https://github.com/zlib-ng/zlib-ng/pull/1328

    Also similarly, most client code will be unaffected because `state->head` will be NULL, because they (most client code) won't have used inflateGetHeader() at all.

  • Git’s database internals II: commit history queries
    3 projects | news.ycombinator.com | 30 Aug 2022
    I wonder if zlib-ng would make a difference, since it has a lot of optimizations for modern hardware.

    https://github.com/zlib-ng/zlib-ng/discussions/871

  • Computing Adler32 Checksums at 41 GB/s
    5 projects | news.ycombinator.com | 7 Aug 2022
    zlib-ng also has adler32 implementations optimized for various architectures: https://github.com/zlib-ng/zlib-ng

    Might be interesting to benchmark their implementation too to see how it compares.

    2 projects | news.ycombinator.com | 4 Aug 2022
  • Convenient CPU feature detection and dispatch in the Magnum Engine
    9 projects | /r/cpp | 2 Aug 2022
    zlib-ng: https://github.com/zlib-ng/zlib-ng/blob/develop/functable.c
  • games-emulation/dolphin-9999 is failing to build because devs switched to minizip-ng and zlib uses minizip. I'm not sure how to get it to build now, details in post.
    2 projects | /r/Gentoo | 20 Jun 2022
    (2) There are many packages that rely upon zlib and minizip and switching those underlying dependencies is easier said than done. We can't drop zlib completely and switch: "The idea of zlib-ng is not to replace zlib, but to co-exist as a drop-in replacement with a lower threshold for code change." - https://github.com/zlib-ng/zlib-ng

zstd

Posts with mentions or reviews of zstd. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-01-27.
  • DeepSeek releases Janus Pro, a text-to-image generator [pdf]
    2 projects | news.ycombinator.com | 27 Jan 2025
    This. Even their less known work is pretty solid[1] ( used it the other day and was frankly kinda amazed at how well it performed under the circumstances ). Facebook/Meta sucks like most social madia does, but, not unlike Elon Musk, they are on the record of having some contributions to society as a whole.

    [1]https://github.com/facebook/zstd

  • New standards for a faster and more private Internet
    2 projects | news.ycombinator.com | 26 Sep 2024
    I don't think so? It's only seekable with an additional index [1], just like any other compression scheme.

    [1] https://github.com/facebook/zstd/blob/dev/contrib/seekable_f...

  • Large Text Compression Benchmark
    1 project | news.ycombinator.com | 20 Sep 2024
    - latest zstd v1.5.6 ( Mar 30, 2024 https://github.com/facebook/zstd/releases )
  • Current problems and mistakes of web scraping in Python and tricks to solve them!
    21 projects | dev.to | 22 Aug 2024
    You may have also noticed that a new supported data compression format zstd appeared some time ago. I haven't seen any backends that use it yet, but httpx will support decompression in versions above 0.28.0. I already use it to compress server response dumps in my projects; it shows incredible efficiency in asynchronous solutions with aiofiles.
  • MLow: Meta's low bitrate audio codec
    1 project | news.ycombinator.com | 13 Jun 2024
    Zstd is a personal project? Surely it's not by accident in the Facebook GitHub organization? And that you need to sign a contract on code.facebook.com before they'll consider merging any contributions? That seems like an odd claim, unless it used to be a personal project and Facebook took it over

    (https://github.com/facebook/zstd/blob/dev/CONTRIBUTING.md#co...)

  • My First Arch Linux Installation
    3 projects | dev.to | 12 Jun 2024
    Unmount root and remount the subvolumes and the boot partition. noatime is used for better performance zstd as file compression:
  • Rethinking string encoding: a 37.5% space efficient encoding than UTF-8 in Fury
    2 projects | news.ycombinator.com | 7 May 2024
    > In such cases, the serialized binary are mostly in 200~1000 bytes. Not big enough for zstd to work

    You're not referring to the same dictionary that I am. Look at --train in [1].

    If you have a training corpus of representative data, you can generate a dictionary that you preshare on both sides which will perform much better for very small binaries (including 200-1k bytes).

    If you want maximum flexibility (i.e. you don't know the universe of representative messages ahead of time or you want maximum compression performance), you can gather this corpus transparently as messages are generated & then generate a dictionary & attach it as sideband metadata to a message. You'll probably need to defer the decoding if it references a dictionary not yet received (i.e. send delivers messages out-of-order from generation). There are other techniques you can apply, but the general rule is that your custom encoding scheme is unlikely to outperform zstd + a representative training corpus. If it does, you'd need to actually show this rather than try to argue from first principles.

    [1] https://github.com/facebook/zstd/blob/dev/programs/zstd.1.md

  • Drink Me: (Ab)Using a LLM to Compress Text
    2 projects | news.ycombinator.com | 4 May 2024
    > Doesn't take large amount of GPU resources

    This is an understatement, zstd dictionary compression and decompression are blazingly fast: https://github.com/facebook/zstd/blob/dev/README.md#the-case...

    My real-world use case for this was JSON files in a particular schema, and the results were fantastic.

  • SQLite VFS for ZSTD seekable format
    2 projects | news.ycombinator.com | 26 Apr 2024
    This VFS will read a sqlite file after it has been compressed using [zstd seekable format](https://github.com/facebook/zstd/blob/dev/contrib/seekable_f...). Built to support read-only databases for full-text search. Benchmarks are provided in README.
  • Chrome Feature: ZSTD Content-Encoding
    10 projects | news.ycombinator.com | 1 Apr 2024
    Of course, you may get different results with another dataset.

    gzip (zlib -6) [ratio=32%] [compr=35Mo/s] [dec=407Mo/s]

    zstd (zstd -2) [ratio=32%] [compr=356Mo/s] [dec=1067Mo/s]

    NB1: The default for zstd is -3, but the table only had -2. The difference is probably small. The range is 1-22 for zstd and 1-9 for gzip.

    NB2: The default program for gzip (at least with Debian) is the executable from zlib. With my workflows, libdeflate-gzip iscompatible and noticably faster.

    NB3: This benchmark is 2 years old. The latest releases of zstd are much better, see https://github.com/facebook/zstd/releases

    For a high compression, according to this benchmark xz can do slightly better, if you're willing to pay a 10× penalty on decompression.

    xz -9 [ratio=23%] [compr=2.6Mo/s] [dec=88Mo/s]

    zstd -9 [ratio=23%] [compr=2.6Mo/s] [dec=88Mo/s]

What are some alternatives?

When comparing zlib-ng and zstd you can also consider the following projects:

ZLib - A massively spiffy yet delicately unobtrusive compression library.

haproxy - HAProxy Load Balancer's development branch (mirror of git.haproxy.org)

libdeflate - Heavily optimized library for DEFLATE/zlib/gzip compression and decompression

LZ4 - Extremely Fast Compression algorithm

Minizip-ng - Fork of the popular zip manipulation library found in the zlib distribution.

brotli - Brotli compression format

Snappy - A fast compressor/decompressor

LZMA - (Unofficial) Git mirror of LZMA SDK releases

zlib - Cloudflare fork of zlib with massive performance improvements

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you know that C is
the 6th most popular programming language
based on number of references?