#tar-archive #archive #snapshot #tar #fuse #fs #backup-file

app snapshotfs

A fuse-based read-only filesystem to provide a snapshot view (tar archives) of directories or files without actually creating the archives

5 releases (3 breaking)

0.4.0 Dec 31, 2023
0.3.0 May 13, 2023
0.2.0 May 4, 2023
0.1.1 May 3, 2023
0.1.0 May 3, 2023

#666 in Filesystem

Download history 4/week @ 2024-02-28 5/week @ 2024-03-06 112/week @ 2024-03-13 1/week @ 2024-03-27 1/week @ 2024-04-03

117 downloads per month

AGPL-3.0

28KB
607 lines

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 foreground. Add & to the end to make it run in the background.

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/>.

Dependencies

~7–19MB
~248K SLoC