snapshotfs

Crates.iosnapshotfs
lib.rssnapshotfs
version0.4.2
sourcesrc
created_at2023-05-03 15:52:00.981614
updated_at2024-06-26 03:25:42.853664
descriptionA fuse-based read-only filesystem to provide a snapshot view (tar archives) of directories or files without actually creating the archives
homepage
repositoryhttps://github.com/DCsunset/snapshotfs
max_upload_size
id855582
size81,281
DCsunset (DCsunset)

documentation

README

snapshotfs

crates.io

A fuse-based read-only filesystem to provide a snapshot view (tar archives) of directories or files without actually creating the archives. It uses tar POSIX.1-2001/pax format to handle long file paths.

Snapshotfs is useful for backup or file transfer without creating duplicate archives, which supports efficient random access to the tar files. Currently, only Linux system is supported.

Installation

Pre-built binaries are available at the GitHub release page.

You can also use cargo to install it:

cargo install snapshotfs

Usage

To mount source dir to a mount point:

snapshotfs <SOURCE_DIR> <MOUNT_POINT>

The mount point will be a read-only filesystem providing a snapshot view of all entries in the the source directory. Users should make sure the source directory doesn't change when reading the archives in snapshotfs. Otherwise, the archives might be corrupted.

Note that the program will run in the background by default. Use flag --foreground to run it in the foreground.

The filesystem should be unmounted by command fusermount -u <MOUNT_POINT, even if the program already exits. You can also use -a option to auto unmount the fs upon exit.

See available options using snapshotfs --help.

License

AGPL-3.0. Copyright notice:

snapshotfs
Copyright (C) 2023  DCsunset

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
Commit count: 46

cargo fmt