The RAZip bitstream format was designed to provide a faster random access to compressed data than what is currently possible using the GZIP format. During the desing phase, some other features were added. Below is a list with the main features of RAZip: - provides fast random access to the uncompressed version of compressed data (Example: you can compress an ext2fs-formatted file and mount it as a read-only file system under GNU-Linux and still have a performance comparable to, or better than, an uncompressed file system); - is not covered by patents; - data can be compressed or decompressed in a single pass, without seeking backwards, without a priori knowledge of the number of bytes to be compressed or the number of bytes available on the output media, using only an a priori bounded amount of intermediate storage, so that it can be used in Unix filters and similar structures; - the number of bytes to be compressed and the number of bytes the compressed stream uses is limited only by available storage space; - the exact number of uncompressed bytes can be derived from the bitstream without decompressing any bytes; - many compression algorithms can be used (including no compression). ( If the algorithm cannot determine the end of compressed data from the data itself, the ability to decompress without seeking backwards is lost); - many encryption algorithms can be used (including no encryption); - error checking (you can check the integrity of your file); - error recovery (the user can choose the maximum number of bytes each single bit error in the compressed stream will be able to affect); - Creation / modification dates span more than 584 million years with 1 millisecond precision (So you won't have a similar Y2K problem too soon); - the original file name can be stored (the size of the file name is unbounded); - file comments can be stored (the size of the comments is unbounded); - Macintosh files can be compressed with both data fork and resource fork; - Macintosh files can be compressed with its type/creator info; - Macintosh files can be compressed with all its metadata (Finder flags, icon position, etc...); - Unix files can be compressed with all its metadata; - Storing Unix metadata does not stop you from storing MacOS metadata at the same time (or AmigaOS, BeOS, ...) - Additional metadata can be stored in a variety of formats (XML, for example). The size of the metadata is unbounded. Below is another example: Using the "properties" field, you can store the following text: author=Elifarley Callado Coelho genre=rythm&blues lyrics=Oh this is a song, just a song. Sing with me my song, oh yeah... volume=75% or cartridge name=Zero Wing game category=Alien invasion game subcategory=green-skinned arrow-eared bomb-eating Mars invaders tips=Hit the alien with a stove in his forehead to go to the secret level or . . . - text data can be represented in UTF-8; - the RAZip header is compressed along with the data to be compressed (but can be stored without compression too); - almost everything is optional, so you don't waste bytes with unnecessary information; If you have any suggestions / questions , please let me know. Enjoy, Elifarley C. Coelho elifarley@yahoo.com http://www.oocities.org/elifarley/