Releases: tsolomko/SWCompression
4.3.0 Test 2
In this test release a new function and enum have been added to TarContainer
which provide information about formats of TAR containers.
4.3.0 Test 1
This is the first test release of 4.3.0 which includes support for ZIP custom extra fields, updates for Swift 4.1 and upcoming 1.2.0 release of BitByteData.
4.2.2
- Fixed a problem when in some rare cases (when
SevenZipSubstreamInfo
isn't found in a container) 7-Zip Container entries were skipped duringopen(container:)
, instead of being appended withnil
data to the result array, as was always intended. - Fixed a crash in
SevenZipContainer.info(container:)
when either entry's size or CRC32 isn't present in the container. - Updated documentation.
4.2.1
4.2.0
- Minuimum required version of BitByteData is now 1.1.0.
- Added
ownerID
andgroupID
properties toZipEntryInfo
, which provide access to uid and gid from Info-ZIP New Unix and Info-Zip Unix extra fields. - Added
unknownExtendedHeaderRecords
property toTarEntryInfo
which includes unrecognized entries from PAX global and local extended headers. - Prevent double slashes in
TarEntryInfo.name
when prefix header's field was used, but it had trailing slash. - Improved BZip2 compression performance: Now additional Huffman trees aren't created when they cannot be used, since maximum amount of Huffman tables was generated.
- Disabled symbol stripping in archives generated by Carthage and published on GitHub Releases.
- swcomp changes:
- Replaced 9 block size options of
bz2
command with a single one:-b
(--block-size
). - Now prints entry type-specific properties in output of
tar
,zip
and7z
commands with-i
(--info
) option. - Renamed
perf-test
command group tobenchmark
.
- Replaced 9 block size options of
4.2.0 Test 2
The most important thing to note about this test version is the removal of "several APIs which work with ByteReaders and BitReaders instead of Data". As it was said, their addition in the previous test release was an experimental feature. Unfortunately, there were some problems with these APIs. For example, they were incosistent: some of them were changing byte(bit) reader that the user passed as an argument, while others weren't. As such, it was decided to remove them (or, rather, make them internal
).
4.2.0 Test 1
This test release of the upcoming 4.2.0 update includes following improvements:
- Added several APIs which work with
ByteReader
s andBitReader
s instead ofData
(experimental feature). - Added support for Info-ZIP's extra fields which store uids and gids of entries.
- Now requires BitByteData version at least 1.1.0.
4.1.1
- Fixed incorrect value of
TarEntryInfo.name
in certain situations.
Comment: This problem was occurring when file name was long enough to not fit into "name" field of TAR's header, but no PAX or GNU extensions were used, so the "prefix" field was used instead. - Updated documentation for
TarEntryInfo
.
4.1.0
- Functionality related to reading and writing bits and bytes was published as a separate project, BitByteData. As a result SWCompression now has BitByteData as a dependency.
- Several performance improvements have been made. See updated test results for more information.
- Added a workaround to prevent situations when some BZip2 archives created by SWCompression could not be opened by original BZip2 implementation.
Comment: It seems that some BZip2 implementations (including original one) don't account for the fact that the initial Run-Length Encoding can actually cause expansion of the input data. To prevent this from happening SWCompression now uses BZip2 blocks smaller than intended by the format. - Modification time stored in ZIP's "native" field is now calculated relative to current system's calendar and time zone.
Comment: Since standard ZIP's fields don't have any way to save time zone data it is more likely that archivers stored modification time relative to current system's settings rather than UTC-relative (which was assumed by SWCompression before). Behaviour of NTFS timestamp and Extended timestamp extra fields hasn't been changed. - Additions to swcomp command-line tool:
- Added
-1
...-9
options tobz2
command which specifies what block size to use for BZip2 compression. - Added
-i
(--info
) option togz
command which prints GZip's header. - Added
comp-deflate
andcomp-bz2
subcommands toperf-test
command which can be used for performance testing of Deflate and BZip2 compression. - Updated descriptions of
-e
options forzip
,tar
and7z
commands. - Now sets permissions for extracted files only if they are greater than 0.
- Added
4.1.0 Test 2
- Performance improvements:
- Preallocate byte arrays when output size is known.
- Inverse Burrows-Wheeler transform without sorting.
- Store ntfs reference date as a static constant.
- "Fixed" a problem when some BZip2 archives created by SWCompression could not be opened by original BZip2 implementation.
- Modification time stored in ZIP's "native" field is now calculated relative to current system's calendar and time zone.
- Added options (
-1
...-9
) toswcomp bz2 -c
for specifying block size . - Added option (
-i
,--info
) toswcomp gz
for printing GZip's header. - Added commands (
comp-deflate
,comp-bz2
) to swcomp for performance testing of Deflate and BZip2 compression. - Corrected descriptions of extract options of swcomp's container-related commands.
- swcomp now sets permissions for extracted files only if they are greater than 0.