SQLite Archiver

Check-in [4824e73896]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the README.md file to talk about the difference between the zlib compression format and the raw deflate compression format and why SQLAR uses the zlib format.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | trunk
Files: files | file ages | folders
SHA1: 4824e7389653a46fb628922182d732cf935a1c82
User & Date: drh 2018-01-07 19:37:12
Context
2018-01-07
19:37
Update the README.md file to talk about the difference between the zlib compression format and the raw deflate compression format and why SQLAR uses the zlib format. Leaf check-in: 4824e73896 user: drh tags: trunk
2017-12-04
16:24
Update README.md to describe how symbolic links are stored in an archive. check-in: ef2844a7e0 user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to README.md.

     1      1   <h1 align="center">SQLAR - SQLite Archiver</h1>
     2      2   
     3         -This repository contains sources for a proof-of-concept "SQLite Archiver"
            3  +This repository contains sources for the "SQLite Archiver"
     4      4   program.  This program (named "sqlar") operates much like "zip", except that
     5      5   the compressed archive it builds is stored in an SQLite database instead
     6      6   of a ZIP archive.
     7      7   
     8      8   The motivation for this is to see how much larger an SQLite database file
     9      9   is compared to a ZIP archive containing the same content.  The answer depends
    10     10   on the filenames, but 2% seems to be a reasonable guess.  In other words,
................................................................................
    64     64   Both directories and empty files have sqlar.sz==0.  Directories can be
    65     65   distinguished from empty files because directories have sqlar.data IS NULL.
    66     66   The file is compressed if length(sqlar.blob)<sqlar.sz and is stored
    67     67   as plaintext if length(sqlar.blob)==sqlar.sz.
    68     68   
    69     69   Symbolic links have sqlar.sz set to -1, and the link target stored as
    70     70   a text value in the sqlar.data field.
           71  +
           72  +SQLAR uses the "zlib format" for compression.  ZIP uses the raw deflate format.
           73  +The difference is that the zlib format contains a two byte compression-type
           74  +indentification header (0x78 0x9c) and a 4-byte checksum at the end.  Thus
           75  +the "data" for SQLAR is always 6 bytes larger than the equivalent data for
           76  +ZIP.  The SQLAR program uses the zlib format rather than the slightly smaller
           77  +raw deflate format because that is what the 
           78  +[zlib documentation](https://www.zlib.net/manual.html) recommends.
           79  +
           80  +SQLAR might someday be extended to support additional compression formats
           81  +other than deflate.  If so, the data field will contain new header values to
           82  +identify entries compressed using the new formats.
    71     83   
    72     84   ## Fuse Filesystem
    73     85   
    74     86   An SQLite Archive file can be mounted as a 
    75     87   [Fuse Filesystem](http://fuse.sourceforge.net) using the "sqlarfs"
    76     88   utility, including with this project.
    77     89