On Sat, Nov 8, 2025 at 2:23 PM Collin Funk <[email protected]> wrote:

> Hi Bruno,
>
> Bruno Haible via "GNU gzip discussion and bug reports."
> <[email protected]> writes:
>
> > Hi,
> >
> > For various compression formats there is a C library for compressing
> > and decompressing:
> >   - libbz2
> >   - liblz4
> >   - liblzma
> >   - libzstd
> >
> > But there is no 'libgz'. It appears that in order to decompress a stream
> > of gzipped data:
> >   1) one needs the 'libz' library from zlib.net,
> >   2) there are two APIs [1]:
> >      - gzopen() and gzread() for input from a file descriptor,
> >      - inflateInit2 (..., 16 + MAX_WBITS) and inflate() for input from a
> >        region of memory.
> >
> > It's unclear to me whether it can alternatively be achieved with
> > libzip from libzip.org.
> >
> > How about documenting this in the GNU gzip manual? I find it strange
> > to have to either read the source code of libarchive or some other
> > package, or ask some LLM about it. gzipped data streams frequently
> > occur as part of HTTP responses and surely also in many other areas.
> >
> > The GNU gzip manual references the two RFCs, that define the data
> > format. But these references don't have the answer either.
>
> Seems reasonable to mention it in the documentation.
>
> zlib is the right one. Some distributions like Fedora default to
> zlib-ng, a fork with optimizations at the expense of portability, when
> installing it [1]. Not sure if that matters to you.
>
> libarchive is nice and has man pages [2], but based on your message is
> probably excessive for your purpose. It would make more sense if you
> were writing something like a package manager that supports different
> archive formats (e.g. tar, zip, cpio) with multiple compression
> algorithms.
>
> I don't know about libzip.


Thanks for the suggestions.
I think it's enough to SEE ALSO-refer to zlib (also mentioned pigz) in the
manual and pushed this.

Attachment: gzip-mention-zlib-pigz.diff
Description: Binary data

Reply via email to