Re: GZip{In,Out}putStream in GIO?



> > 2009/7/31 Brian J. Tarricone<bjt23 cornell edu>:
> >> On 07/31/2009 05:48 AM, Mikkel Kamstrup Erlandsen wrote:
> >>
> >>>   From the looks of it, it should be straight forward to write
> >>> GZip{In,Out}putStream classes based on zlib
> >> I'd say call it GCompressed{In,Out}putStream and have it either auto-detect
> >> the compression type, or have a param in the API to specify from an enum (or
> >> both).  People can add support for other types of compression as time goes
> >> on.

It's nice to see I'm not the only person that's after this.
I'm not sure what other people need this for, but I thought
I'd give a data point for why it's useful to me.

Yelp currently has its own subclass of GIOChannel that does
decompression on the fly for gzip, bzip2, and lzma.

http://git.gnome.org/cgit/yelp/tree/src/yelp-io-channel.c

It's not a particularly elegant solution.  It has everything
in one file, with bzip2 and lzma functionality in #ifdefs,
and determines what to do by file extension.  But it does the
job for Yelp, which needs to read man and info pages that may
be compressed.

(It's also a fairly trivial and not-complete implementation.
For instance, it doesn't do seeking, because Yelp doesn't
need it.)

I've been looking at converting Yelp over to GIO, so having
such an InputStream would be very useful to me.  If it's not
in GLib, I'll have to do my own.

I'd really need all three of the above compression schemes to
work.  If a gzip-only InputStream is done, I can always ship
my own bzip2 and lzma implementations.

A flexible system using runtime-loadable backends is fine for me,
as long as I know bzip2 and lzma implementations are available.
I don't particularly care about having a guarantee that they're
there.  Distributions that ship lzma-compressed man pages can
just make sure the backend is installed.  Not my problem.

And yes, this is me volunteering to do the work, but not until
I get around to gutting Yelp, which will be in maybe two months.
I'll have to do the work anyway for Yelp.  It would be nice to
get input from the maintainers about what approach they think
is best.

--
Shaun




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]