Bugfixes
- Remove the
accessimplementation from the FUSE driver. There's no point here trying to be more clever than FUSE's default. This makes sure DwarFS will behave more like other FUSE file systems. See github discussion #244 for details. - Limit the number of chunks returned in
inodeinfoxattr. Highly fragmented files would have megabytes ininodeinfo, which not only breaks the xattr interface, but can also dramatically slow down tools likeezawho like to read xattrs for no apparent reason. - Avoid nested indentation in manpages to work around
ronn-ngbug. Fixes github #249. - Don't link library against
jemalloc. This fixes both issues withpydwarfsand issues building withjemallocsupport on macOS. Only the binaries are now linked againstjemalloc, which should be sufficient.
Features
- Support case-insensitive lookups. Fixes github #232.
- Allow setting image size in FUSE driver. Fixes github #239.
- Support extracting a subset of files with
dwarfsextractusing the new--patternoption. The same glob patterns can be used as for the filter rules inmkdwarfs. Fixes github #243. - Allow overriding UID / GID for the whole file system when using the FUSE driver on non-Windows platforms. See github discussion #244.
- Expose more LZMA options (
mode,mf,nice,depth). - Improve filter patterns, which now support ranges and complementation.
- Improve speed of filesystem
walk/walk_data_ordercalls by 80% / 40%. The impact of this will largely depend on what the code is being run for each inode, but, for example, the speed of listing more than 14 million files withdwarfsckwill take about 16 seconds compared to 17 seconds with the previous release. - Added an inode size cache to the metadata to speed up file size computation for large, highly fragmented files. The configuration is currently fixed using a conservative default. Only files with at least 128 chunks will be added to the cache, so in a lot of cases this cache may be completely empty and not contribute to the size of the file system image at all.
- Use bit-packing for hardlink, shared files, and chunk tables. This will consume less memory when loading a DwarFS image.
- Show total hardlink size in
dwarfsckoutput. - Library: return a
dir_entry_viewfromreaddirandfind. This is more consistent, but was previously not easily possible due to the lack of a "self" dir entry in the metadata. The "self" entry has been added and will only impact the size of the metadata ifdirectoriesmetadata is not packed. - Library: prefer
std::string_viewoverchar const*. - Library: add directory iterator to
directory_view. - Library: support for
maxiovparameter inreadvcall.
Other
- Lots of internal refactoring to improve overall code quality.
Full Changelog: v0.10.2...v0.11.0
SHA-256 Checksums
2040a951697ddb78a4b6ee887e06be4295f9d2e3708a311ac72ad9ad7bd28aa3 dwarfs-0.11.0-Linux-aarch64-clang-reldbg-stacktrace.tar.xz
0db0d6bc823d26f86d47f1edf8b4ddbcf85fab24e118be7de9ee091234b5623e dwarfs-0.11.0-Linux-aarch64-clang.tar.xz
a7214b10902653c582aa4c21e05e2476518ed1d15e4640cc3eb2bbe53a297120 dwarfs-0.11.0-Linux-x86_64-clang-reldbg-stacktrace.tar.xz
35e851bce5ba6a17b6b53081d1305ebcee5698d8bc770b8b1a875d2986fd6d7c dwarfs-0.11.0-Linux-x86_64-clang.tar.xz
852c96133444493eff6f03324bc2700e31859d75410a937f0714eae9f75d2dd4 dwarfs-0.11.0.tar.xz
15591223010400488c5066a864bcee3ad71c045e2aa4bf60b7c05e9d45909b9f dwarfs-0.11.0-Windows-AMD64.7z
da197d19b3eadfea5180034765d70c050ae9b85ade58dd0aa91b65283a079236 dwarfs-universal-0.11.0-Linux-aarch64-clang
d58ad14583345d4e7efb4ddb0278ec39c836646a39868422ca1358fa22a990b7 dwarfs-universal-0.11.0-Linux-aarch64-clang-reldbg-stacktrace
72fe171dd9d9abd0bba46e52a983934affbcc9a7349d07854eda91d788ea686b dwarfs-universal-0.11.0-Linux-x86_64-clang
1c5b19c21aca4dc6df8cff3e06358c96fb4e3bb1e969ed3ceef0eb381d84f98b dwarfs-universal-0.11.0-Linux-x86_64-clang-reldbg-stacktrace
f2451ed0832c13157f869a3d7ba3596fcb4bb0c5c55741fc054ce6b1bdc977c8 dwarfs-universal-0.11.0-Windows-AMD64.exe