]> git.cworth.org Git - gzip/blob - TODO
Imported Debian patch 1.3.5-10sarge1
[gzip] / TODO
1 TODO file for gzip.
2
3         Copyright (C) 1999, 2001 Free Software Foundation, Inc.
4         Copyright (C) 1992, 1993 Jean-loup Gailly
5
6         This file is part of gzip (GNU zip).
7
8         gzip is free software; you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation; either version 2, or (at your option)
11         any later version.
12
13         gzip is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with tar; see the file COPYING.  If not, write to
20         the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21         Boston, MA 02111-1307, USA.
22
23
24 Some of the planned features include:
25
26 - Internationalize by using gettext and setlocale.
27
28 - Structure the sources so that the compression and decompression code
29   form a library usable by any program, and write both gzip and zip on
30   top of this library. This would ideally be a reentrant (thread safe)
31   library, but this would degrade performance. In the meantime, you can
32   look at the sample program zread.c.
33
34   The library should have one mode in which compressed data is sent
35   as soon as input is available, instead of waiting for complete
36   blocks. This can be useful for sending compressed data to/from interactive
37   programs.
38
39 - Make it convenient to define alternative user interfaces (in
40   particular for windowing environments).
41
42 - Support in-memory compression for arbitrarily large amounts of data
43   (zip currently supports in-memory compression only for a single buffer.)
44
45 - Map files in memory when possible, this is generally much faster
46   than read/write. (zip currently maps entire files at once, this
47   should be done in chunks to reduce memory usage.)
48
49 - Add a super-fast compression method, suitable for implementing
50   file systems with transparent compression. One problem is that the
51   best candidate (lzrw1) is patented twice (Waterworth 4,701,745
52   and Gibson & Graybill 5,049,881). The lzrw series of algorithms
53   are available by ftp in ftp.adelaide.edu.au:/pub/compression/lzrw*.
54
55 - Add a super-tight (but slow) compression method, suitable for long
56   term archives.  One problem is that the best versions of arithmetic
57   coding are patented (4,286,256 4,295,125 4,463,342 4,467,317
58   4,633,490 4,652,856 4,891,643 4,905,297 4,935,882 4,973,961
59   5,023,611 5,025,258).
60
61   Note: I will introduce new compression methods only if they are
62   significantly better in either speed or compression ratio than the
63   existing method(s). So the total number of different methods should
64   reasonably not exceed 3. (The current 9 compression levels are just
65   tuning parameters for a single method, deflation.)
66
67 - Add optional error correction. One problem is that the current version
68   of ecc cannot recover from inserted or missing bytes. It would be
69   nice to recover from the most common error (transfer of a binary
70   file in ascii mode).
71
72 - Add a block size (-b) option to improve error recovery in case of
73   failure of a complete sector. Each block could be extracted
74   independently, but this reduces the compression ratio.
75
76   For one possible approach to this, please see:
77
78     http://www.samba.org/netfilter/diary/gzip.rsync.patch
79
80 - Use a larger window size to deal with some large redundant files that
81   'compress' currently handles better than gzip.
82
83 - Implement the -e (encrypt) option.
84    
85 Send comments to <bug-gzip@gnu.org>.