-
Notifications
You must be signed in to change notification settings - Fork 0
Parfu Current Status
THe test version in the root of the main repository is 0.5.1. This version of parfu only archives ONE directory target when creating an archive (although that directory can in turn have arbitrarily many subdirectories and files).
This version of parfu has a completely bare-bones command-line interface. Exactly 3 arguments. The first is either "C" or "X" (for "create" or "extract", to (C) create an archive file from a directory tree. The second argument is the name (and path to) the archive file. The third argument is the name of the directory to put into the archive (for create) or else the place to extract the contents of the archive (for extract).
Here's a basic example of creating an archive: parfu_0_5_1 C archive_path/archive_file.pfu target_path/directory_to_archive
If you want to archive starting at the directory your shell is sitting in, then it would look like this instead:
parfu_0_5_1 C ../archive_path/archive_file.pfu . I've added ".." to the beginning of the path to the archive file. It's certainly possible to archive your current directory and at the same time archive to a directory also in it, but that would lead to confusion and is not recommended.
Extract example: (extraction is not currently enabled)
Parfu has no command-line adjustable parameters. At some point it may make sense to have a command-line switch that sets the per-rank aggregation size to optimize it on a certain architecture or hardware, but this is not available yet. Any such adjustments must be made by setting the constant in the main header file and recompiling.
Here is how parfu treats various types of files:
- normal files are archived and extracted as normal
- empty normal files are archived and extracted as normal
- all directories starting at the target root directory are archived and restored (upon extraction, all directories are put in place first before any files are extracted, to avoid any race conditions)
- empty directories are archived and extracted
- all directories are stored with their path relative to the target root directory that the archive started at. This means that archived pathnames for files or directories never contain a leading "/". If you need to extract from the root directory, just specify "/" as the target directory, and when extracting specify "/" as the extract target.
- symbolic links are archived as symbolic links and restored as such as well. There is currently no option to follow symlinks (but there will be in future versions).
We know of no fundamental limitations of parfu. Parfu has been run up to a few thousand ranks with no noticable problems. Parfu has archived and extracted directories of at least 1.5 million files, and directories totalling at least a couple of Tera-bytes.
As of September 2021, parfu is being re-written in C++. It contains language features that are present in C++17, so it's not likely to work with code standards before that.