1
- # This is my version of brkirch's afsctool
1
+ # afcstool
2
2
3
3
> AFSC (Apple File System Compression) tool is a utility that can be used
4
4
to apply HFS+ compression to file(s), decompress HFS+ compressed file(s), or
5
5
get information about existing HFS+ compressed file(s).
6
6
Mac OS 10.6 or later is required. See: https://brkirch.wordpress.com/afsctool/
7
7
8
- I have made several modifications, mostly concerning the compression feature:
8
+ I (RJVB) have made several modifications, mostly concerning the compression feature:
9
9
- improved error reporting
10
10
- an attempt to reduce memory pressure compressing large files
11
11
- support for multiple files/folders specified on the commandline
@@ -15,7 +15,6 @@ I have made several modifications, mostly concerning the compression feature:
15
15
temporarily. No error checking is done for this feature; failure will lead to
16
16
errors that are already caught.
17
17
18
-
19
18
The main new feature that justifies the version bump, however, is the parallel
20
19
processing feature, allowing the user to specify an arbitray (though positive :))
21
20
number of threads that will compress the specified files in parallel.
@@ -27,6 +26,7 @@ This feature has two modes that each perform best in specific conditions:
27
26
state disks, file collections that reside on different disks or collections with
28
27
files of different sizes (including notably very large files). This mode is
29
28
selected with the -J option.
29
+
30
30
The performance difference is never enormous in my testing, but YMMV.
31
31
32
32
Interestingly, the optimum performance (on large collections) is not necessarily
@@ -53,27 +53,27 @@ and later. Currently only LZVN support is fully implemented (though decompressio
53
53
should work if the OS supports it). Note that LZVN support requires a headerfile not
54
54
currently installed by the original author's LZVN repo; use my fork instead and build it
55
55
with cmake. --> https://github.com/RJVB/LZVN
56
+
56
57
This version also makes the current ZLIB compression mode optional, that uses a compression
57
58
buffer that is allocated all at once (and is thus almost always too large. The new default
58
59
mode adopts the approach also used for LZVN compression, where the memory buffer is grown
59
60
as needed and thus only gets as large as needed (typically 4-5x smaller than in the singleshot
60
61
mode). Singleshot mode might be marginally faster when enough RAM is available.
61
62
62
-
63
- ### Installation
63
+ ## Installation
64
64
65
65
afsctool depends on zlib (v1.2.8 or newer) and Google's sparsehash library and on CMake
66
66
and pkgconfig for building. The OS zlib copy may be recent enough (it is on 10.12 and later) but to be
67
67
certain to obtain the latest versions of both, use a package manager like MacPorts, Fink
68
68
or HomeBrew. Be sure to follow the general installation and usage instructions for those
69
69
projects, in particular how to update your PATH.
70
70
71
- # using MacPorts:
71
+ ### Using MacPorts:
72
72
``` shell
73
73
port install sparsehash zlib cmake pkgconfig
74
74
```
75
75
76
- # using HomeBrew:
76
+ ### Using HomeBrew:
77
77
``` shell
78
78
brew install google-sparsehash zlib cmake pkgconfig
79
79
PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig
@@ -98,12 +98,9 @@ cd afsctool/build
98
98
sudo make install/fast V=1 VERBOSE=1
99
99
```
100
100
101
- # A word about the other executable (zfsctool)
102
-
101
+ ## zfcstool
103
102
This repository also builds another utility, ` zfsctool ` .
104
103
105
- ## zfsctool
106
-
107
104
This is a stripped-down and adapted version of ` afsctool ` , aiming to provide a comparable
108
105
offline/post-hoc * re* compression of selected files and folders on ZFS as ` afsctool ` does
109
106
on HFS+ and APFS.
0 commit comments