/fusecompress

Transparent compression FUSE filesystem

Primary LanguageCGNU General Public License v2.0GPL-2.0

FuseCompress
============

http://fusecompress.googlecode.com/


We are not responsible for any badness that may happen to you while using
this software.

NEWS
~~~~
	0.9.2 The source code is arranged in folders. Update man pages. Developments documents. Don't inline function.
	0.9.1.1 Buffer overflow from command line parsing fixed. Fix bug that
	        caused permition problems on read-only files.
	0.9.1 File format has been changed. It allows better cooperation with
	      file and magic utility.
	0.9.0 First release that can be marked as stable. Many bugs fixed.
	0.8.8 User can choose compression method via program parameter.
	0.8.7 Correct rename bug, don't freeze on unmounting when in debug mode.
	0.8.6 Correct time of last status chnage, correct cleaning during unmount.
	      Remove hard-coded minimal filesize for compressing.
	0.8.4 Support lzo compression.
	0.8.3 Problem with files bigger than 2GB fixed.
	0.8.2 Write-only bug corrected.
	0.8.1 README updated.
	0.8   Major update. New format for storing compressed files is used.

LICENSE
~~~~~~~
This program is distributed under the terms of the GNU Public License
version 2.

TODO
~~~~
See http://code.google.com/p/fusecompress/issues/list

INSTALLATION
~~~~~~~~~~~~
To compile a release build, run

./autogen.sh (If there is no "configure" file)
./configure
make

For more information, see
http://code.google.com/p/fusecompress/wiki/BuildHOWTO

USAGE
~~~~~
        fusecompress [OPTIONS] /storage/directory [/mount/point]
          -h                   print this help
          -v                   print version
          -c lzo/bz2/gz/lzma/null   choose default compression method
          -l LEVEL             set compression level (1 to 9)
          -o ...               pass arguments to fuse library

You can mount filesystem over existing directory with files by omitting the
last parameter. Files will be compressed when you work with filesystem. Even
a simple 'find /storage' will compress them. Note that some of the last
files found are not compressed - this increases performance on frequently
accessed files. These files are compressed when the filesystem is unmounted
or (if mounted with "-o noterm" (default for root)) when the fusecompress
process receives a SIGTERM signal.

Useful parameters for FUSE library:

The FUSE library must be configured to support these features - the configuration
file /etc/fuse.conf must contains at least the option "user_allow_other".

allow_other

        This option overrides the security measure restricting file
        access to the user mounting the filesystem.  So all users
        (including root) can access the files.  This option is by
        default only allowed (and automatically enabled) for root,
        but this restriction can be removed with the configuration
        option described in the previous section.

allow_root

        This option is similar to 'allow_other', but file access is limited
        to the user mounting the filesystem and root.  This option and
        'allow_other' are mutually exclusive.

More information can be found at
http://code.google.com/p/fusecompress/wiki/Usage

TIPS AND TRICKS
~~~~~~~~~~~~~~~
How can I find out about the compression ratio?

        Run this command in the FuseCompressed directory when mounted
        with FuseCompress:
                du -sh
                du -sh --apparent-size

        The first command prints the total uncompressed size of all
        files in the current directory and its subdirectories while
        the second one prints the total compressed size.

        When the FuseCompress filesystem is not mounted, run `ls -l
        my_file.dat` and compare the file size with the value
        obtained with `file my_file.dat`.

File and magic utilities:

Put this config file into ~/.magic or /etc/magic to allow the file utility
to recognize the FuseCompress file format:

0       string  \037\135\211    FuseCompressed data
>3      byte    0x00    (null format)
>3      byte    0x01    (bz2 format)
>3      byte    0x02    (gz format)
>3      byte    0x03    (lzo format)
>3      byte    0x04    (lzma format)
>3      byte    >0x04   (unknown format)
>4      long    x       uncompressed size: %d

AUTHORS
~~~~~~~
Milan Svoboda <milan.svoboda@centrum.cz> (original author)
Anders Aagaard <aagaande@gmail.com> (direct compress feature)
Ulrich Hecht <uli@suse.de> (LZMA module, tools, test suite, bugfixes, maintainer)

Feel free to contact Ulrich Hecht with suggestions and bug reports.

Thanks to Dobos Sándor for testing.
Thanks to Roland Kletzing for exhaustive testing and suggestions.