[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7109":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},7109,"Zip","marmelroy\u002FZip","marmelroy","Swift framework for zipping and unzipping files.","",null,"Swift",2602,477,40,102,0,4,60.44,"MIT License",false,"master",true,[24,25,26,27,28],"compression","files","swift","unzip","zip","2026-06-12 04:00:32","![Zip - Zip and unzip files in Swift](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F889949\u002F12374908\u002F252373d0-bcac-11e5-8ece-6933aeae8222.png)\n\n[![Build Status](https:\u002F\u002Ftravis-ci.org\u002Fmarmelroy\u002FZip.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Fmarmelroy\u002FZip) [![Version](http:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FZip.svg)](http:\u002F\u002Fcocoapods.org\u002F?q=Zip) [![Carthage compatible](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage) [![SPM supported](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSPM-supported-brightgreen.svg?style=flat)](https:\u002F\u002Fswift.org\u002Fpackage-manager)\n\n\n# Zip\nA Swift framework for zipping and unzipping files. Simple and quick to use. Built on top of [minizip](https:\u002F\u002Fgithub.com\u002Fnmoinvaz\u002Fminizip).\n\n## Usage\n\nImport Zip at the top of the Swift file.\n\n```swift\nimport Zip\n```\n\n## Quick functions\n\nThe easiest way to use Zip is through quick functions. Both take local file paths as NSURLs, throw if an error is encountered and return an NSURL to the destination if successful.\n```swift\ndo {\n    let filePath = Bundle.main.url(forResource: \"file\", withExtension: \"zip\")!\n    let unzipDirectory = try Zip.quickUnzipFile(filePath) \u002F\u002F Unzip\n    let zipFilePath = try Zip.quickZipFiles([filePath], fileName: \"archive\") \u002F\u002F Zip\n}\ncatch {\n  print(\"Something went wrong\")\n}\n```\n\n## Advanced Zip\n\nFor more advanced usage, Zip has functions that let you set custom  destination paths, work with password protected zips and use a progress handling closure. These functions throw if there is an error but don't return.\n```swift\ndo {\n    let filePath = Bundle.main.url(forResource: \"file\", withExtension: \"zip\")!\n    let documentsDirectory = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask)[0]\n    try Zip.unzipFile(filePath, destination: documentsDirectory, overwrite: true, password: \"password\", progress: { (progress) -> () in\n        print(progress)\n    }) \u002F\u002F Unzip\n\n    let zipFilePath = documentsFolder.appendingPathComponent(\"archive.zip\")\n    try Zip.zipFiles([filePath], zipFilePath: zipFilePath, password: \"password\", progress: { (progress) -> () in\n        print(progress)\n    }) \u002F\u002FZip\n\n}\ncatch {\n  print(\"Something went wrong\")\n}\n```\n\n## Custom File Extensions\n\nZip supports '.zip' and '.cbz' files out of the box. To support additional zip-derivative file extensions:\n```swift\nZip.addCustomFileExtension(\"file-extension-here\")\n```\n\n### [Preferred] Setting up with [Swift Package Manager](https:\u002F\u002Fswift.org\u002Fpackage-manager)\nTo use Zip with Swift Package Manager, add it to your package's dependencies:\n```swift\n.package(url: \"https:\u002F\u002Fgithub.com\u002Fmarmelroy\u002FZip.git\", .upToNextMinor(from: \"2.1\"))\n```\n\n### Setting up with [CocoaPods](http:\u002F\u002Fcocoapods.org\u002F?q=Zip)\n```ruby\nsource 'https:\u002F\u002Fgithub.com\u002FCocoaPods\u002FSpecs.git'\npod 'Zip', '~> 2.1'\n```\n\n### Setting up with [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage)\nTo integrate Zip into your Xcode project using Carthage, specify it in your `Cartfile`:\n\n```ogdl\ngithub \"marmelroy\u002FZip\" ~> 2.1\n```\n\n","Zip 是一个用于压缩和解压缩文件的 Swift 框架。它提供了简单易用的接口，支持快速压缩和解压缩功能，并且可以处理密码保护的 ZIP 文件以及自定义文件扩展名。此外，该框架还允许用户通过闭包来跟踪进度，增强了操作的灵活性与可控性。Zip 适用于需要在 iOS 或 macOS 应用程序中进行文件压缩\u002F解压的各种场景，例如数据备份、文件传输或内容打包等。",2,"2026-06-11 03:10:35","top_language"]