Zip - A Swift framework for zipping and unzipping files. Simple and quick to use. Built on top of minizip.

Overview

Zip - Zip and unzip files in Swift

Build Status Version Carthage compatible SPM supported

Zip

A Swift framework for zipping and unzipping files. Simple and quick to use. Built on top of minizip.

Usage

Import Zip at the top of the Swift file.

import Zip

Quick functions

The 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.

do {
    let filePath = Bundle.main.url(forResource: "file", withExtension: "zip")!
    let unzipDirectory = try Zip.quickUnzipFile(filePath) // Unzip
    let zipFilePath = try Zip.quickZipFiles([filePath], fileName: "archive") // Zip
}
catch {
  print("Something went wrong")
}

Advanced Zip

For 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.

() in print(progress) }) // Unzip let zipFilePath = documentsFolder.appendingPathComponent("archive.zip") try Zip.zipFiles([filePath], zipFilePath: zipFilePath, password: "password", progress: { (progress) -> () in print(progress) }) //Zip } catch { print("Something went wrong") } ">
do {
    let filePath = Bundle.main.url(forResource: "file", withExtension: "zip")!
    let documentsDirectory = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask)[0]
    try Zip.unzipFile(filePath, destination: documentsDirectory, overwrite: true, password: "password", progress: { (progress) -> () in
        print(progress)
    }) // Unzip

    let zipFilePath = documentsFolder.appendingPathComponent("archive.zip")
    try Zip.zipFiles([filePath], zipFilePath: zipFilePath, password: "password", progress: { (progress) -> () in
        print(progress)
    }) //Zip

}
catch {
  print("Something went wrong")
}

Custom File Extensions

Zip supports '.zip' and '.cbz' files out of the box. To support additional zip-derivative file extensions:

Zip.addCustomFileExtension("file-extension-here")

[Preferred] Setting up with Swift Package Manager

To use Zip with Swift Package Manager, add it to your package's dependencies:

.package(url: "https://github.com/marmelroy/Zip.git", .upToNextMinor(from: "2.1"))

Setting up with CocoaPods

source 'https://github.com/CocoaPods/Specs.git'
pod 'Zip', '~> 2.1'

Setting up with Carthage

To integrate Zip into your Xcode project using Carthage, specify it in your Cartfile:

2.1 ">
github "marmelroy/Zip" ~> 2.1
Comments
  • Missing required module

    Missing required module "minizip"

    I installed Zip using carthfile and when I try to build this framework I get information about missing module "minizip". What do I need to do, to use this framework?

    opened by PiotrStepien 21
  • Error - Missing required module 'minizip'

    Error - Missing required module 'minizip'

    This occurs when the Zip code files are not present. We use carthage to check out and build dependencies, but we don't commit the code / project files into our repo, just the built frameworks. When another dev checks out the project, they get this error. The built framework should be independent of the project / code files.

    opened by gsimmons 14
  • Add Swift Package Manager support

    Add Swift Package Manager support

    Since #118 seems to be dead, I've created a new PR.

    This adds full SPM support. The following changes were necessary:

    • Add Package.swift file
    • Move minizip model map and headers into "include" subdirectory (required by SPM)
    • Work around some issues with not yet implemented APIs in corelibs-foundation (namely file creation and modification attributes and FileManager.urls(for:in:))
    • Refactor test setup to work with SPM
    • Generate LinuxMain files for SPM tests
    • Let travis run tests with SPM
    • Update README
    opened by ffried 13
  • Failed to set permissions to file

    Failed to set permissions to file

    Updated my pet-project to Swift 3.0 and unzipping is totally broken. I download ZIP from my https and store into Documents. Than I unzip it in same path.

    But receive error: Failed to set permissions to file.

    When I commented Set file permissions from current fileInfo block everything works well.

    iOS Simulator 10. Not tested on real device.

    Thanks.

    opened by therabbitwindfall 13
  • Swift3.0 errors when using `pod lib lint mylib.podspec` in our Pod

    Swift3.0 errors when using `pod lib lint mylib.podspec` in our Pod

    In our Pod iOSDFULibrary we have Zip as a dependency, currently using 0.6 with Swift3 support.

    When I try to pod lib lint iOSDFULibrary.podspec while using Xcode 8 , I get those errors, which seem like Xcode is not using Swift3, I'm guessing ? I only have Xcode8 installed, any tips appreciated!

    - ERROR | xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
        - WARN  | xcodebuild:  Zip/Zip/QuickZip.swift:24:38: warning: extraneous '_' in parameter: 'path' has no keyword argument name
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:40:63: error: expected type
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:40:63: error: expected ',' separator
        - WARN  | xcodebuild:  Zip/Zip/QuickZip.swift:40:38: warning: extraneous '_' in parameter: 'path' has no keyword argument name
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:41:39: error: expected member name following '.'
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:41:39: error: consecutive statements on a line must be separated by ';'
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:41:39: error: 'default' label can only appear inside a 'switch' statement
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:98:1: error: expected '}' at end of brace statement
        - NOTE  | xcodebuild:  Zip/Zip/QuickZip.swift:40:106: note: to match this opening '{'
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:98:1: error: expected declaration
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:85:119: error: expected type
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:85:119: error: expected ',' separator
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:88:39: error: expected member name following '.'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:88:39: error: consecutive statements on a line must be separated by ';'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:88:39: error: 'default' label can only appear inside a 'switch' statement
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:234:146: error: expected type
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:234:146: error: expected ',' separator
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:237:39: error: expected member name following '.'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:237:39: error: consecutive statements on a line must be separated by ';'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:237:39: error: 'default' label can only appear inside a 'switch' statement
        - ERROR | xcodebuild:  Zip/Zip/ZipUtilities.swift:14:35: error: expected member name following '.'
        - ERROR | xcodebuild:  Zip/Zip/ZipUtilities.swift:14:35: error: consecutive declarations on a line must be separated by ';'
        - ERROR | xcodebuild:  Zip/Zip/ZipUtilities.swift:14:35: error: expected declaration
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:24:61: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/QuickZip.swift:40:102: error: use of undeclared type 'URL'
        - WARN  | xcodebuild:  Zip/Zip/Zip.swift:85:33: warning: extraneous '_' in parameter: 'zipFilePath' has no keyword argument name
        - WARN  | xcodebuild:  Zip/Zip/Zip.swift:343:48: warning: extraneous '_' in parameter: 'fileExtension' has no keyword argument name
        - WARN  | xcodebuild:  Zip/Zip/Zip.swift:355:46: warning: extraneous '_' in parameter: 'fileExtension' has no keyword argument name
        - WARN  | xcodebuild:  Zip/Zip/Zip.swift:364:49: warning: extraneous '_' in parameter: 'fileExtension' has no keyword argument name
        - WARN  | xcodebuild:  Zip/Zip/Zip.swift:375:44: warning: extraneous '_' in parameter: 'fileExtension' has no keyword argument name
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:13:23: error: use of undeclared type 'Error'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:85:48: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:85:66: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:234:40: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:234:59: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:13:13: error: type 'ZipError' does not conform to protocol 'RawRepresentable'
        - NOTE  | xcodebuild:  Swift.RawRepresentable:9:20: note: protocol requires nested type 'RawValue'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:101:57: error: argument 'count' must precede argument 'repeating'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:106:71: error: use of unresolved identifier 'path'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:107:51: error: use of unresolved identifier 'FileAttributeKey'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:111:31: error: use of unresolved identifier 'Progress'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:114:32: error: use of unresolved identifier 'ProgressKind'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:117:29: error: use of unresolved identifier 'path'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:122:28: error: thrown expression type 'ZipError' does not conform to 'ErrorType'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:125:40: error: value of type 'String' has no member 'cString'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:126:17: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:129:17: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:131:16: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:132:32: error: thrown expression type 'ZipError' does not conform to 'ErrorType'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:135:34: error: use of unresolved identifier 'MemoryLayout'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:136:13: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:137:16: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:139:32: error: thrown expression type 'ZipError' does not conform to 'ErrorType'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:144:28: error: type 'UnsafeMutablePointer<CChar>' (aka 'UnsafeMutablePointer<Int8>') has no member 'allocate'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:151:32: error: thrown expression type 'ZipError' does not conform to 'ErrorType'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:160:50: error: use of unresolved identifier 'CharacterSet'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:166:32: error: use of unresolved identifier 'Date'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:167:40: error: use of unresolved identifier 'FileAttributeKey'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:168:40: error: use of unresolved identifier 'FileAttributeKey'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:180:17: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:193:20: error: value of optional type 'UnsafeMutablePointer<FILE>?' not unwrapped; did you mean to use '!' or '?'?
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:196:32: error: thrown expression type 'ZipError' does not conform to 'ErrorType'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:198:13: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:202:49: error: argument passed to call that takes no arguments
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:207:18: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:207:35: error: use of unresolved identifier 'ret'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:211:29: error: argument passed to call that takes no arguments
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:252:21: error: use of unresolved identifier 'processedPaths'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:264:31: error: use of unresolved identifier 'Progress'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:267:32: error: use of unresolved identifier 'ProgressKind'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:270:27: error: use of unresolved identifier 'destinationPath'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:271:21: error: use of unresolved identifier 'processedPaths'
        - ERROR | xcodebuild:  Zip/Zip/Zip.swift:330:29: error: argument passed to call that takes no arguments
        - WARN  | xcodebuild:  Zip/Zip/ZipUtilities.swift:37:35: warning: extraneous '_' in parameter: 'paths' has no keyword argument name
        - WARN  | xcodebuild:  Zip/Zip/ZipUtilities.swift:63:43: warning: extraneous '_' in parameter: 'directory' has no keyword argument name
        - ERROR | xcodebuild:  Zip/Zip/ZipUtilities.swift:20:26: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/ZipUtilities.swift:37:45: error: use of undeclared type 'URL'
        - ERROR | xcodebuild:  Zip/Zip/ZipUtilities.swift:63:56: error: use of undeclared type 'URL'
    
    opened by mostafaberg 13
  • Cannot build on Xcode9

    Cannot build on Xcode9

    I've updated this library to 1.0.0 to use it with Xcode9. Prior to convert my project to Swift 4 syntax I see an error Iike the screenshot below. screen shot 2017-10-01 at 12 54 44 I couldn't proceed with the migration because the project didn't compile, so I had to manually modify the 2 offending lines reverting to previous version, then I migrated the project to swift 4 and reverted the lines. Isn't there a better way to handle the transition to swift 4 for this project?

    opened by alessionunzi 12
  • Zip file created with Password on iOS can't unzip on Windows

    Zip file created with Password on iOS can't unzip on Windows

    Hi, I'm using your lib in my iOS project. My problem is the zip file that is created with password on iOS 10.0 (Both Simulator and Real iPhone) can't unzip on Windows. I've tried many unzip tools (WinRAR, 7Zip...) but all failed with a message "Wrong password". (The problem is only occurred on my password protected zip file, if password is null, it is perfectly unzipped on Windows)

    Here is the zipped file https://dl.dropboxusercontent.com/u/38691130/image_pass_123.zip Password is "123"

    Thankyou so much!

    duplicate 
    opened by dttrinh 11
  • Please help! Getting error no such module 'minizip' during builds

    Please help! Getting error no such module 'minizip' during builds

    Hello all,

    I am trying to incorporate this library into my project and my pod reference looks like this below:

    pod 'Zip', git: 'https://github.com/marmelroy/Zip', branch: ‘master’, submodules: true

    However, when my swift 3.0 source uses import minizip, I get the following error.

    opened by jlaurence2020 9
  • Execute bit is lost

    Execute bit is lost

    Just stumbled on this as the only Swift cocoapod that works with my application. My only issue is that it strips the execute bits when it unzips. I have a zip with a .app inside. After unzipping, I get something like this guy does: http://apple.stackexchange.com/questions/181026/lsopenurlswithrole-failed-with-error-10810-cant-open-install-os-x-yosemite

    When I mark everything as executable, the .app works again. That's not a very clean solution. I'm wondering if I missed something.

    Below is my usage:

    try Zip.unzipFile(location, destination: applicationsDirectory, overwrite: true, password: nil, progress: { (progress) -> () in
                    print(progress)
                    DispatchQueue.main.async {
                        self.downloadProgressBar.doubleValue = progress * 0.2 + 0.8;
                    }
                }) // Unzip
    

    Any help is much appreciated.

    bug enhancement 
    opened by jssuttles 9
  • Swift2.3 Cocoapods - minizip is missing

    Swift2.3 Cocoapods - minizip is missing

    Migration from swift 2.2 to 2.3 with XCode 8 triggers an error on build :

    no such module 'minizip'

    I tried to point on specific branch without success :

    pod 'Zip', '~> 0.4' or pod 'Zip', :git => 'https://github.com/marmelroy/Zip.git', :branch => 'swift2.3'

    opened by jhanzo 9
  • Feature/swift3.0

    Feature/swift3.0

    +This PR includes changes to the source files and the test cases that Utilizes Swift 3.0 +Tests have been run and all pass +Verified filesystem to confirm zip files work on the device properly +Tested on XCode 8.0b3 (8S174q)

    opened by mostafaberg 9
  • Unable to zip file from URL

    Unable to zip file from URL

    Hi, I am trying to zip file which I have accessed via UIDocumentPickerViewController and saving it in the same directory with source and destination url: file:///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/Downloads/ and I am getting this error: The operation couldn’t be completed. (Zip.ZipError error 2.) with description Error: Failed to zip file.

    Here is the code: func zip(url: URL) -> URL? { do { let tokens = url.lastPathComponent.split(separator: ".") let firstToken = "\(tokens.first ?? "")" let zipFilePathURL = try Zip.quickZipFiles([url.deletingLastPathComponent()], fileName: firstToken) return zipFilePathURL } catch let error { logger.error("\(#function) Error: \(error.localizedDescription)") } return nil }

    I tried to zip a .pdf file when I got this error. I will be glad if you can help me out here. Thanks in advance.

    opened by Zulqurn 0
  • Special characters

    Special characters

    When I'm compressing files with special characters the result of the file compressed it's so strange.

    Real file: Sebastián,García_stl

    Result of compressed file: Sebastián,García_.stl

    What I can do with that?

    opened by wikyburns 0
  • Not able to use zip.xcframework

    Not able to use zip.xcframework

    Hello Team,

    I am trying to use zip.xcframework in my app with other frameworks but getting these errors(Attached error screenshot) when trying to build my app....

    Can you plz suggest what's wrong with using zip.xcframework...

    Thanks Screenshot 2022-04-12 at 13 57 30

    opened by sumitkapoorpurple 5
  • Unzipping also returns unzipped url to a corrupted file in a __MACOSX directory

    Unzipping also returns unzipped url to a corrupted file in a __MACOSX directory

    When unzipping a file to a directory toDir using this call:

    try Zip.unzipFile(zippedFileUrl, destination: toDirUrl, overwrite: true, password: nil, progress: nil) { (url) in ... }
    

    the closure gets called twice. First time with the url to the unzipped file in toDirUrl, so something like:

    ..../toDirUrl/myfile.png

    the closure then gets called a second time pointing to:

    ..../toDirUrl/__MACOSX/._myfile.png

    Problem is that ..../toDirUrl/__MACOSX/._myfile.png is no good. Image is not readable. Also, not sure why I get called to let me know that unzipped file is in ..../toDirUrl/__MACOSX/._myfile.png when I already have a good readable version of it exactly at the path I specified ..../toDirUrl.

    So, now I have to special case and ignore any url pointing to the ..../toDirUrl/__MACOSX/... directory.

    opened by berzzani 0
Releases(2.1.2)
Owner
Roy Marmelstein
Ya tu sabes.
Roy Marmelstein
The sample implementation of zip-archived document for a macOS AppKit platform.

The sample implementation of zip-archived document for a macOS AppKit platform. You can implement NSDocument-based I/O of archived document in your application like .sketch or .key.

usagimaru 4 Nov 12, 2022
An enhancement built on top of Foundation Framework and XCTest.

Beton is a Swift library built on top of the Foundation framework, that provides an additional layer of functionality, including easy localization, performance test measurement support, and convenience functionality. For us, Beton is primarily, but not exclusively, useful for server-side Swift engineering.

21Gram Consulting 26 Dec 10, 2022
A quick and "lean" way to swizzle methods for your Objective-C development needs.

Swizzlean A quick and "lean" way to swizzle methods for your Objective-C development needs. Adding Swizzlean to your project Cocoapods CocoaPods is th

Ryan Baumbach 104 Oct 11, 2022
🕸️ Swift Concurrency-powered crawler engine on top of Actomaton.

??️ ActoCrawler ActoCrawler is a Swift Concurrency-powered crawler engine on top of Actomaton, with flexible customizability to create various HTML sc

Actomaton 18 Oct 17, 2022
Merges a given number of PDF files into one file using the PDFKit framework

Titanium iOS PDF Merge Merges a given number of PDF files into one file using the PDFKit framework Requirements iOS 11+ Titanium SDK 9+ API's Methods

Hans Knöchel 6 Jan 26, 2022
Cereal is a serialization framework built for Swift

Cereal is a serialization framework built for Swift. Its intended as a substitution for NSCoding to allow advanced Swift features. With NSCoding, you cannot encode or decode a Swift struct, enum, or generic class. Cereal solves this issue through deferred decoding with generics, and a protocol that doesn't depend on NSObjectProtocol.

Weebly 369 Sep 28, 2022
Monitor changes to files and directories using kernel event notifications (kqueue) in Swift

SKQueue SKQueue is a Swift libary used to monitor changes to the filesystem. It wraps the part of the kernel event notification interface of libc, kqu

Daniel Pedersen 86 Oct 26, 2022
Parse iOS mobile provisioning files into Swift models

SwiftyProvisioningProfile This library provides a way to decode a .mobileprovision file into a Swift model. Installation The recommended installation

James Sherlock 60 Nov 25, 2022
Validate iOS, Android, and Mac localizations. Find errors in .strings, .stringsdict, and strings.xml files.

Locheck An Xcode and Android localization file validator. Make sure your .strings, .stringsdict, and strings.xml files do not have any errors! What do

Asana 73 Dec 13, 2022
Steps and files needed to reproduce a CSP bug in Safari Web Extensions

CSP Safari bug repro There appears to be a discrepancy between how Safari handles CSP policies for extension pages compared to how other browsers do s

Brian Birtles 0 Nov 6, 2021
Converter for your Rigol Oscilloscope .CSV files to LtSpice

rigol2spice A program to convert Rigol oscilloscope's .CSV files to a format readable by LTspice. Your Rigol oscilloscope can output .CSV files that c

Rui Carneiro 4 Aug 31, 2022
HxSTLParser is a basic STL parser capable of loading STL files into an SCNNode

HxSTLParser HxSTLParser is a basic STL parser capable of loading STL files into an SCNNode. Installing Via Carthage Just add it to your Cartfile githu

Victor 23 Dec 16, 2022
Creates SpriteKit game maps from TMX Map files.

PEMTileMap is a Swift package that generates SpriteKit game maps from TMX Map files. Maps, layers, tiles and objects are automatically rendered as SKN

hotdogsoup.nl 3 Jul 12, 2022
Unit-Converter-SwiftUI - A simple Unit Converter iOS app built in the process of learning SwiftUI

SwiftUI-Unit-Converter A simple Unit Converter iOS app built in the process of l

Ishaan Bedi 2 Jul 13, 2022
AnimeListSwiftUI - Anime quote list built with MVVM Swift 5 using Async/Await

How To In SwiftUI Async/Await AnimeListSwiftUI - Anime quote list built with MVVM Swift 5 using Async/Await Clones Clubhouse - App clone built with Sw

Rogério Toledo 3 Nov 2, 2022
🟣 Verge is a very tunable state-management engine on iOS App (UIKit / SwiftUI) and built-in ORM.

Verge is giving the power of state-management in muukii/Brightroom v2 development! Verge.swift ?? An effective state management architecture for iOS -

VergeGroup 478 Dec 29, 2022
RandomKit is a Swift framework that makes random data generation simple and easy.

RandomKit is a Swift framework that makes random data generation simple and easy. Build Status Installation Compatibility Swift Package Manager CocoaP

Nikolai Vazquez 1.5k Dec 29, 2022
Useful Swift code samples, extensions, functionalities and scripts to cherry-pick and use in your projects

SwiftyPick ?? ?? Useful Swift code samples, extensions, functionalities and scripts to cherry-pick and use in your projects. Purpose The idea behind t

Manu Herrera 19 May 12, 2022
🗃 Powerful and easy to use Swift Query Builder for Vapor 3.

⚠️ This lib is DEPRECATED ⚠️ please use SwifQL with Bridges Quick Intro struct PublicUser: Codable { var name: String var petName: String

iMike 145 Sep 10, 2022