Skip to content

Releases: tsolomko/SWCompression

3.3.0 Test 2

16 Aug 19:19
v3.3.0-test.2
c8be30a
Compare
Choose a tag to compare
3.3.0 Test 2 Pre-release
Pre-release

This test release contains fixes and improvements in other than 7z parts of SWCompression.

3.3.0 Test 1

14 Aug 14:38
v3.3.0-test.1
8229afd
Compare
Choose a tag to compare
3.3.0 Test 1 Pre-release
Pre-release

This pre-release version includes support for 7-Zip containers.

3.2.0

16 Jul 08:12
v3.2.0
5b48cd2
Compare
Choose a tag to compare
  • Added creationTime property and corresponding key/value pair into entryAttributes for TarEntry.
  • Added support for ZIP standardized CP437 encoding of string fields such as file name and file comment.
    • Fallback to UTF-8 if CP437 is unavailable.
    • Fallback to UTF-8 if it is detected that string fields is in UTF-8.
      Comment: The latter is necessary because, apparently, ZIP files created by Info-ZIP tools never specify UTF-8 flag, even in cases when it should be set.
  • Fixed problem with installing SWCompression using Swift Package Manager.
    Comment: SPM performs git clone from local repository during installation of package which doesn't work well with Git LFS enabled repositories. To fix this, test files were moved into a separate repository and included as a submodule.
  • Fixed problem with finding ZIP64 end of Central Directory locator.
  • Fixed problem with accessing ZipEntry's data two or more times.
  • Fixed problem with accessing data of BZip2 compressed ZipEntry.
  • Fixed problem with incorrect reading ZIP64 data descriptor.
  • Removed internal SWCompression/Common subspec.

3.2.0 Test

15 Jul 18:11
v3.2.0-test
32394d6
Compare
Choose a tag to compare
3.2.0 Test Pre-release
Pre-release

A test version of the upcoming 3.2.0 update. Necessary to test internal changes such as splitting source files, etc.

3.1.3

08 Jul 12:24
v3.1.3
62f0c80
Compare
Choose a tag to compare
  • Added support for LongLinkName and LongName extensions of TAR format, which are used by GNU tar program.
  • Added support for modification timestamp from extended timestamps ZIP extra field, which is often more correct than default ZIP modification time.

3.1.2

07 Jul 21:26
v3.1.2
d237520
Compare
Choose a tag to compare
  • wrongUstarVersion error is no longer thrown when TAR container with GNU-format is encountered. As a side effect, this particular error is now never thrown.

3.1.1

05 Jul 19:35
v3.1.1
f7103c4
Compare
Choose a tag to compare
  • Permissions attribute from entryAttributes and mode property for TarEntry are now decimal based instead of octal as was intended.
    Comment: Decimal-based permissions are consistent with permissions for ZipEntry. Furthermore, FileManager.setAttributes function expects decimal based number and this change eliminates unnecessary conversion.
  • Now consistently throws fieldIsNotNumber error when encounters non-number required field in TAR header.
    Comment: Previously, there were a couple of properties for which this error wasn't thrown and the problem with such properties was silently ignored. Now it is fixed.
  • Documentation for entryAttributes now lists possible attributes.

3.1.0

03 Jul 15:46
v3.1.0
1ae622f
Compare
Choose a tag to compare
  • Added support for multi-member GZip and multi-stream XZ archives.
    Comment: This archives are essentially several separate archives concatenated into one file. Despite that, they are described in specifications for both GZip and XZ, so it is important to be able to open them. Story time: they were actually supported up until SWCompression 3.0 where it was removed because it was kind of a hidden functionality. Moreover, the resulted data from each part of multi-member archive were combined into single Data object which was hard to use. But now there is a separate multiunarchive(:) function for these cases.
  • Added entryAttributes property to both TarEntry and ZipEntry.
    • This property allows access to various attributes such as modification time, POSIX permissions, entry type, etc.
    • Existing separate TarEntry properties for these attributes are now considered deprecated and will be removed in 4.0.
    • This also means that ZipEntry's modification time, permissions, etc can be now accessed.
    • This property utilizes FileAttributeKey type from Foundation framework which provides relatively easy way of setting attributes of unpacked file through FileManager.setAttributes function.
    • This property also contains information about type of an entry. FileAttributeType values from Foundation are used for specifying it.
    • entryAttributes is going to be renamed to attributes in 4.0.
  • Added support in TarEntry for linked file path specified using PAX format.
  • Fixed several problems with decompressing LZMA compressed files from ZIP container.
  • Fixed problem with discarding ZIP containers with wrongVersion error when they contain LZMA or BZip2 compressed files.
  • Encrypted ZIP containers should now be detected properly and error should be now thrown more consistently.
  • ZipError.compressionNotSupported is now only thrown when trying to get entry's data and not when just opening an archive using open(:) function.
  • Text fields from GZip header are now decoded more correctly.
    Comment: Previously, SWCompression expected UTF-8 encoding in this fields, but according to specification this fields are encoded using ISO-Latin-1 encoding. In most real-life scenarios this mismatch was unlikely to cause any problem, but it was kind of incorrect behaviour and is now fixed.
  • Improved Deflate comrpession rate for some corner cases.
  • Improved BZip2 performance for big data sizes.

Side notes.

  1. 'Know issues' section was added to README.
  2. Performance discussions, thoughts and notes about it were moved into a separate file.

3.1.0 Test

01 Jul 21:12
v3.1.0-test
5f41fb6
Compare
Choose a tag to compare
3.1.0 Test Pre-release
Pre-release

This upcoming release will include designated functions for 'multiunarchive' functionality as well as some improvements to file attributes support in containers and fixes for several problems.

3.0.1

03 Jun 10:13
v3.0.1
90060b5
Compare
Choose a tag to compare
  • Memory usage during Deflate compression was reduced SIGNIFICANTLY.
  • Speed of Deflate compression was increased too.