Skip to content
CAI
Software that uses CAICheck a score

weichsel/ZIPFoundation

67.9

Adequate · 30 September 2026

3.7k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

ZIP Foundation is a cross-platform Swift library for creating and manipulating ZIP archives, supporting macOS, iOS, Linux, and other platforms. It provides capabilities for reading, writing, and modifying ZIP files, including support for ZIP64 archives and in-memory operations. The library handles file attributes, error conditions, and progress reporting, with comprehensive test coverage and privacy manifest compliance.

Behavioural changes

Added Xcode workspace configuration files

The project now includes a standard Xcode workspace structure, adding the workspace data file and the IDE workspace checks plist. This ensures proper workspace setup and suppresses the 32-bit warning in the IDE.

ZIPFoundation.xcodeproj/project.xcworkspace · high confidence

Added privacy manifest declaring file timestamp API usage

ZIPFoundation now includes a PrivacyInfo.xcprivacy resource file to comply with Apple's privacy requirements. The manifest declares that the library accesses the NSPrivacyAccessedAPICategoryFileTimestamp API (reason code 0A2A.1) and confirms that no data is tracked or collected.

Sources/ZIPFoundation/Resources · high confidence

Added shared Xcode scheme with Release-mode testing and code coverage

The project now includes a shared Xcode scheme (ZIPFoundation.xcscheme) that configures test runs to always execute in Release mode and enables code coverage generation. This ensures that developers and CI systems running tests via this scheme get consistent, optimized build behavior and coverage reports, rather than relying on default Debug-mode test configurations.

ZIPFoundation.xcodeproj/xcshareddata · high confidence

Improved Windows compatibility for CZLib integration

The CZLib source files have been updated to ensure correct compilation on Windows. A new module map and shim header replace previous imports with standard includes to avoid MSVC parsing errors, and explicit macros (\_LARGEFILE64\_SOURCE, \_FILE\_OFFSET\_BITS, \_LFS64\_LARGEFILE) are defined to enable 64-bit file offset support required by zlib on this platform.

Sources/CZLib · high confidence

ZIP Foundation 0.9.20 release with cross-platform and stability improvements

This release adds support for file modification date attributes and code page 437 string decoding for paths on non-Darwin platforms. It fixes a resource leak in Archive.makeBackingConfiguration, a memory leak in Data.readChunk, and a memory alignment crash in debug mode. The library also improves error handling in the MemoryFile type and String to Data conversion, and updates README examples to use non-deprecated APIs.

(repo-wide) · high confidence

ZIP Foundation refactored into modular extensions with new in-memory archive support

The library's internal structure has been reorganized into distinct Swift extensions (BackingConfiguration, MemoryFile, Progress, Reading, Writing, ZIP64, and Deprecated) to improve maintainability and platform compatibility. A key behavioral change is the introduction of in-memory archive support for Swift 5.0+ on macOS, iOS, tvOS, visionOS, watchOS, and Linux, allowing archives to be created and manipulated directly from \Data\ objects without disk I/O. The public API has been updated to deprecate non-throwing initializers and \UInt32\-based buffer size parameters in favor of throwing initializers and \Int\ types, while also introducing progress reporting and cancellation support for read, write, and remove operations.

Sources/ZIPFoundation · high confidence

ZIPFoundation project configuration and test infrastructure updates

The Xcode project has been updated to include explicit Info.plist files for the main framework and test bundle, ensuring proper versioning via CURRENT\_PROJECT\_VERSION. A privacy manifest (PrivacyInfo.xcprivacy) is now bundled and copied during the build phase to comply with modern iOS/macOS privacy requirements. The project structure has been reorganized to support ZIP64 archives, with dedicated source files (Archive+ZIP64.swift, Entry+ZIP64.swift) and corresponding test suites (ZIPFoundationArchiveTests+ZIP64.swift, etc.) added to the build. Deprecated API wrappers (Archive+Deprecated.swift, FileManager+ZIPDeprecated.swift) are now explicitly included, signaling a transition away from older initialization and compression methods. Test coverage has been expanded with new files for memory operations, error conditions, and file attributes, while build settings have been adjusted to support visionOS and enforce stricter platform deployment targets.

ZIPFoundation.xcodeproj · high confidence

Test coverage

Added Linux test runner for ZIPFoundation; Added test resource files for zero-size entry error conditions; Added unit tests for ZIP64 support and archive error conditions.

Dependencies

Initial CocoaPods support and Swift Package Manager configuration

ZIPFoundation is now available via CocoaPods (version 0.9.20) alongside its existing Swift Package Manager integration. The new podspec configures the library for iOS 12.0, macOS 10.11, tvOS 12.0, watchOS 2.0, and visionOS 1.0, and includes a privacy manifest resource bundle. The SPM package manifest defines the core target and tests, conditionally linking the system zlib library on platforms that do not support the native Compression framework.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 70 → 68 (-2.3)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 98 → 94 (-4.4)
  • Architecture 100 → 100 (+0.0)
  • Maturity 59 → 59 (+0.2)
  • Readiness 67 → 64 (-3.3)
  • Security 85 → 85 (+0.0)
  • Performance 83 (new)

Resolved (4)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (28)

  • Archive.replaceCurrentArchive (cognitive 18) (Sources/ZIPFoundation/Archive.swift)
  • Data.decode (cognitive 24) (Sources/ZIPFoundation/Data+Compression.swift)
  • Data.encode (cognitive 18) (Sources/ZIPFoundation/Data+Compression.swift)
  • Data.process (cognitive 28) (Sources/ZIPFoundation/Data+Compression.swift)
  • Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
  • Duplicated block (3–20 lines × 6) (Sources/ZIPFoundation/Archive+ZIP64.swift)
  • Duplicated block (6 lines × 2) (Sources/ZIPFoundation/Archive+ZIP64.swift)
  • Duplicated block (7 lines × 2) (Sources/ZIPFoundation/FileManager+ZIP.swift)
  • FileManager.zipItem (cognitive 20) (Sources/ZIPFoundation/FileManager+ZIP.swift)
  • Flaky test: .::ZIPFoundationTests.ZIPFoundationTests.testPerformanceCRC32
  • Flaky test: .::ZIPFoundationTests.ZIPFoundationTests.testPerformanceReadCompressed
  • Flaky test: .::ZIPFoundationTests.ZIPFoundationTests.testPerformanceReadUncompressed
  • Flaky test: .::ZIPFoundationTests.ZIPFoundationTests.testPerformanceWriteCompressed
  • Flaky test: .::ZIPFoundationTests.ZIPFoundationTests.testPerformanceWriteUncompressed
  • Low coverage: Sources/ZIPFoundation/Archive+ReadingDeprecated.swift (Sources/ZIPFoundation/Archive+ReadingDeprecated.swift)
  • Low coverage: Sources/ZIPFoundation/Archive+WritingDeprecated.swift (Sources/ZIPFoundation/Archive+WritingDeprecated.swift)
  • Low coverage: Sources/ZIPFoundation/Data+CompressionDeprecated.swift (Sources/ZIPFoundation/Data+CompressionDeprecated.swift)
  • Low coverage: Sources/ZIPFoundation/FileManager+ZIPDeprecated.swift (Sources/ZIPFoundation/FileManager+ZIPDeprecated.swift)
  • Members sharing a duplicated core (6 members, 50+ identical tokens) (Sources/ZIPFoundation/Archive+ZIP64.swift)
  • MethodTooLong: Archive.addEntry (Sources/ZIPFoundation/Archive.swift)
  • …and 8 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

weichsel/ZIPFoundation was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit e7a17d57c583067eaa6659cd6d9521265b7664e9 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.