ratarmount

Access large archives as a filesystem efficiently, e.g., TAR, RAR, ZIP, GZ, BZ2, XZ, ZSTD archives

MIT License

Downloads
4.1K
Stars
700
Committers
10
ratarmount - ratarmount 0.15.2 Latest Release

Published by mxmlnkn about 2 months ago

ratarmount

The AppImage now uses manylinux_2_28 instead of manylinux2014 because CentOS 7 was EOL 2024-06-30, which broke the Github Actions pipeline for building the AppImage because some of the "actions" such as "checkout" broken because they are using npm, which requires a newer glibc version and does not work anymore inside the manylinux2014 container. I tried to manually check out the repo, which worked, but then I lost my patience when the upload-artifact action also failed.

Fixes

  • Setting either the owner or group for a file with --write-overlay would reset the group or user respectively.
  • Setting owner or group to 0 (root) with --write-overlay was not working.

ratarmountcore

Fixes

  • Fix error when combining --recursive or --recursion-depth with --write-overlay.
ratarmount - ratarmount 0.15.1

Published by mxmlnkn 5 months ago

ratarmount

Fixes

  • Show install suggestions when FUSE is missing.
  • File deletion with --commit-overlay did not work.

ratarmountcore

Fixes

  • Fix the missing indentation for the index version check.
  • Make --help and --version work even if libarchive.so is not installed.
  • Fix LibarchiveMountSource compatibility issues with older libarchive versions.
  • Fix the exception in StenciledFile when seeking before the file start.
ratarmount - ratarmount 0.15.0

Published by mxmlnkn 7 months ago

ratarmount

Added

  • Print indicators for versions of loaded shared libraries.

ratarmountcore

Added

  • Add libarchive backend and detection support for:
    grzip, lrzip, lz4, lzip, lzma, lzop, rpm, uuencode, compress, 7zip, ar, cab, deb, xar, cpio, iso, war, cxar.
  • Add --transform option to map each archive entry path via a regex to some user-specified one.
  • Add zlib support (RFC1950).
  • Store backend name into the index and check that the index fits to the current backend / MountSource.
  • Store isGnuIncremental flag in the index.
  • Apply specified priorities for opening all archives not just gzip.

Performance

  • Determine incremental archives from index rows to avoid seeks.
  • Remove indexed_bzip2 dependency in favor of rapidgzip, which in the future should support even more formats.

Fixes

  • utils.findModuleVersion: Return version not name if __version__ does not exist.

rapidgzip

Added

  • The rapidgzip Python library now also bundles IndexedBzip2File from indexed_bzip2.
  • Enable checksum verification by default.
  • Support for decompression from non-seekable inputs such as stdin.

Performance

  • Windows / seek points are compressed in memory for reduced memory usage.
  • Avoid doubling memory usage during index import and export by streaming the data directly to the output file.
ratarmount - ratarmount 0.14.2

Published by mxmlnkn 7 months ago

ratarmount

Fixes

  • Do not check mount point because of faulty os.path.ismount, simply try fusermount.
  • Avoid total I/O hang when lazy-mounting a folder with archives onto itself.

ratarmountcore

Fixes

  • Return a valid file info and file version count for /.
  • Make the original archive viewable as an older file version when using AutoMountLayer.
  • Resolve symbolic links pointing outside the source folder given to FolderMountSource to not break them.
  • Do not return a valid FileInfo for invalid paths such as ../...
  • Make --index-minimum-file-count work for the TAR backend.
  • The index should not be created for very small archives.
  • Root file info userdata was not initialized correctly.
  • Index validation did fail for TAR entries with more than 2 metadata blocks.
  • Do not check for folder consistency because parent folders get automatically added to the index.
  • Move _createFileInfo out of MountSource class to fix "protected-access" warning.
  • Joined files (a.001, a.002) did not work because of an accidentally shared list.
  • Do not check file header for zip, only for the footer, to detect self-extracting archives.
ratarmount - ratarmount 0.14.1

Published by mxmlnkn 8 months ago

ratarmount

Fixes

  • Fix AttributeError: module 'fuse' has no attribute 'errno'.
  • Fix --commit-overlay, which did not add newly created empty folders to TARs.
  • Do not ask for confirmation if there is nothing to commit when using --commit-overlay.
  • Improve unmounting with ratarmount -u, especially with the AppImage.

ratarmountcore

Fixes

  • Properly close opened file objects in mount sources.
  • Fix --disable-union-mount, which returned an I/O error.
  • Fix that --use-backend=indexed_gzip still did use rapidgzip. It only worked when both were specified.
  • Fix detection of self-extracting RAR files.
  • Improve the error message when a file cannot be read because of a missing dependency.
  • Improve debug message when the index does not yet contain a gzip index.
  • Fix faulty seek forward for files opened via RarMountSource when whence is not io.SEEK_SET.

Performance

  • Skip data offset collection for zip files because it takes too long and is unused.
ratarmount - ratarmount 0.9.3

Published by mxmlnkn 8 months ago

  • Fix mounting of TAR fails if there are special characters like '#' in the path.
  • Fix recursive mounting of simple compressed files (file.bz2) inside TAR.
  • Fix file objects being returned by SQLiteIndexedTar not being independent of each other.
    because of the shared underlying file object.
ratarmount - ratarmount 0.9.2

Published by mxmlnkn 8 months ago

  • Fix StenciledFile accidentally throwing an exception when accessing empty files.
  • Improve performance when using union mounting by using a folder-to-archive lookup cache.
  • Implicitly added parent folders will now show a size of 0B instead of arbitrary 1B.
  • Fix version ordering for implicitly added folders.
  • Fix permissions to not remove write permissions. FUSE will still return a
    "Read-only file system" error when trying to modify the file system.
  • Fix RAR files were not found when ratarmount was daemonized and changed the current working directory.
ratarmount - ratarmount 0.9.1

Published by mxmlnkn 8 months ago

  • Fix recursive mounting failing for archives in top-level directory.
  • Replace the optional lzmaffi dependency with a python-xz dependency.
  • Fix missing files in ZIP and RAR if parent folders are not in the archive.
  • Fix archives getting misrecognized as ZIP because of lenient zipfile.is_zipfile function.
  • Make indexed_zstd an optional dependency on macOS because wheels are missing.
  • Fix CRC errors thrown by rarfile when reading after seeking back file objects for files inside RARs.
  • Fix ratarmount not working if rarfile or zipfile were not installed.
  • Disable ZIP support with Python 3.6 and older because the returned file object is not seekable.
ratarmount - ratarmount 0.9.0

Published by mxmlnkn 8 months ago

  • Refactor the code and introduce a MountSource interface.
  • Add support for zip and rar archives including password-encrypted ones.
  • Improve recursive mounting. If supported by the decompression backend,
    compressed archives inside compressed archives can be mounted recursively.
  • Fixes for macOS and Windows.
ratarmount - ratarmount 0.8.1

Published by mxmlnkn 8 months ago

  • Fix BLOB longer than INT_MAX bytes error for .gz archives larger than ~400GB.
  • Add missing dataclasses dependency for Python 3.6.
  • Open SQLite index read-only to allow multiple ratarmount instances to use it.
  • Raise an exception if SQLiteIndexedTar cannot read the given file object.
  • Warn on newer index versions.
  • Add support for --index-name :memory: to create in-memory indexes.
ratarmount - ratarmount 0.8.0

Published by mxmlnkn 8 months ago

  • Fix SQLiteIndexedTar class when being called with a file object.
  • Add -P argument option to activate the parallel BZ2 decoder of indexed_bzip2 1.2.0.
  • Add --lazy option, which works in tandem with --recursive, and bind mounted folders.
    TARs inside the source folder will be mounted only after the first access to it through the mount point.
  • TARs containing hard links to files with exactly the same name will be interpreted as referring
    to a prior version of that file.
ratarmount - ratarmount 0.7.0

Published by mxmlnkn 8 months ago

  • Add CLI options --index-file and --index-folder to specify an index location or folder.
  • Add support for zstd compressed TARs.
  • Add support for xz compressed TARs when compressed with pixz or pxz or similar tools
    limiting the block size.
  • Fix index location check not accounting for SQLite special requirements.
  • Add warnings for when the existing index was created with different arguments,
    e.g., without --recursive, even though --recursive was requested.
  • Add specialized exceptions used by ratarmount.
  • Add recursive mounting for folders in order to mount all contained TARs.
ratarmount - ratarmount 0.6.1

Published by mxmlnkn 8 months ago

  • Fix broken CLI and add test for it.
ratarmount - ratarmount 0.6.0

Published by mxmlnkn 8 months ago

  • Fix bug with filename encoding on some special characters like accented vowels or umlauts.
  • Add support to mount simple .gz or .bz2 files, which are not compressed TARs.
  • Fix number of hardlinks being always shown as 2. Changed to show 1.
  • Fix wrong size reporting when index size has changed.
  • Fix blocksize and therefore du results always showing 0.
  • Add command line option to turn on modification timestamp checking.
  • Add command to mount recursive tars at folders where the .tar extension is stripped.
  • Fix recursion limit hit when mounting a TAR with more than or equal 1000 contained TARs.
ratarmount - ratarmount 0.5.0

Published by mxmlnkn 8 months ago

  • Add support for sparse files inside the TAR.
  • Automatically detect if the TAR file has grown since the last index creation.
  • Add support for truncated TAR files, e.g., during downloading.
  • Add support for concatenated TAR files.
  • Add support for hardlinks in the TAR file.
  • Add support for union mounting.
  • Add support for accessing older versions of a file if the TAR contains multiple versions.
  • Detect changes in TAR files and recreate the index if so.
  • Remove support for old non-SQLite index backends.
ratarmount - ratarmount 0.4.1

Published by mxmlnkn 8 months ago

  • Add option for gzip index seek point spacing to CLI.
  • Fix absolute symbolic links being stripped of their leading '/'.
  • Fix returned error codes.
  • Fix detection and recreation of found incomplete indexes.
  • Add -o alternative short version for --fuse.
ratarmount - ratarmount 0.4.0

Published by mxmlnkn 8 months ago

  • Make bzip2 seek support standalone module.
  • Fix memory leak because BZ2Reader destructor was never called.
  • Fix SQLite backend loading not working when index is read-only.
  • Improve faulty index detection.
  • Fix typo causing bug with gzip support detection.
  • Deprecate legacy serializers.
ratarmount - ratarmount 0.3.4

Published by mxmlnkn 8 months ago

  • Fix performance bug for index creation of uncompressed TARs by not
    using streaming mode in that case.
ratarmount - ratarmount 0.3.3

Published by mxmlnkn 8 months ago

  • Fix bz2 decompression bug with repeated sequences at block boundaries.
  • Add version information to SQLite index.
  • Fix progress bar estimates for compressed files to account for compression ratio.
  • Fix argument parsing error when calling script directly instead of installing it.
ratarmount - ratarmount 0.3.2

Published by mxmlnkn 8 months ago

  • Fix PyPI source tarball build failing on older compilers because
    static_assert was used without a message string.