- Added
isCompressed
accessor toEntry
- Improved README and documentation
- Fixed deprecation in the random test data generator
- Added initial support for building for Android
- Fixed CRC32 calculation for non-final compression streams
- Fixed evaluation of CRC32 checksums when using
FileManager.unzipItem
- Fixed missing extra field data after entry removal
- Added large file support (ZIP64)
- Fixed an
UInt16
overflow when calculating the number of entries - Fixed entry removal for in-memory archives
- Fixed a crash when
fopen()
fails during archive replacement - Improved CRC32 calculation performance via zlib (when available)
- Added check to disallow removal of entries from readonly archives
- Added guard against API misuse by providing zero byte buffer sizes
- Fixed an
UInt16
overflow when calculating the end of the central directory record - Fixed detection of ZIP version required to extract
- Fixed missing consumer closure call for zero byte entries
- Fixed erroneous application of
.deflate
compression on.symlink
and.directory
entries - Improved detection of
.directory
entries - Improved performance when looking up entries via subscripting
- Improved consistency of URL format used in the Swift package description
- Read/Write support for in-memory archives
- Fixed a memory safety issue during (de)compression
- Fixed dangling pointer warnings when serializing ZIP internal structs to
Data
- Fixed missing Swift 5 language version when integrating via CocoaPods
- Fixed inconsistent usage of the optional
preferredEncoding
parameter during entry addition - Improved documentation for compression settings
- Optional
skipCRC32
parameter to speed up entry reading
- Fixed a race condition during archive creation or extraction
- Fixed an error when trying to add broken symlinks to an archive
- Fixed an App Store submission issue by updating the product identifier to use reverse DNS notation
- Improved CRC32 calculation performance
- Improved entry replacement performance on separate volumes
- Improved documentation for closure-based writing
- Swift 5.0 support
- Optional
preferredEncoding
parameter to explicitly configure an encoding for filepaths
- Fixed a library load error related to dylib versioning
- Fixed a hang during read when decoding small,
.deflate
compressed entries - Improved Linux support
- Improved test suite on non-Darwin platforms
- Disabled symlink resolution during path traversal checking
- App extension support
- Optional
compressionMethod
parameter forzipItem:
- Fixed a path traversal attack vulnerability
- Fixed a crash due to wrong error handling after failed
fopen
calls
- Temporarily removed the currently unsupported
.modificationDate
attribute on non-Darwin platforms
- Swift 4.1 support
- Fixed default directory permissions
- Fixed a compile issue when targeting Linux
- Progress tracking support
- Operation cancellation support
- Improved performance of CRC32 calculations
- Improved Linux support
- Fixed wrong behaviour when using the
shouldKeepParent
flag - Fixed a linker error during archive builds when integrating via Carthage
- Fixed a wrong setting for
FRAMEWORK_SEARCH_PATHS
that interfered with code signing - Added a proper value for
CURRENT_PROJECT_VERSION
to make the framework App Store compliant when using Carthage
- Carthage support
- Improved error handling
- Made consistent use of Swift's
CocoaError
instead ofNSError
- Changed default POSIX permissions when file attributes are missing
- Improved docs
- Fixed a compiler warning when compiling with the latest Xcode 9 beta
- Optional parameter to skip CRC32 checksum calculation
- Tweaked POSIX buffer sizes to improve IO and comrpression performance
- Improved source readability
- Refined documentation
- Optional parameter skip decompression during entry retrieval
- Initial release of ZIP Foundation.