DittoSwift - Swift package for the DittoSwift framework

Related tags

Image DittoSwift
Overview

DittoSwift

Ditto logo

Swift package for the DittoSwift framework.

See the Ditto iOS Installation documentation for details on how to get started and use this package in your app.

Author

Ditto ([email protected])

πŸ“„ License

Copyright Β© 2019 DittoLive Incorporated. All rights reserved. See the LICENSE file for more info.

You might also like...
A simple, declarative, functional drawing framework, in Swift!
A simple, declarative, functional drawing framework, in Swift!

DePict - A simple, declarative, functional drawing framework. To produce a drawing, call the Draw function (just type Draw and let autocomplete do the

A simple macOS app to read code from images, written purely in Swift using Vision Framework.
A simple macOS app to read code from images, written purely in Swift using Vision Framework.

CodeReader A simple macOS app to read code from images, written purely in Swift using Vision Framework. Usage Drag an image Click the convert button R

A pure Swift high-performance asynchronous image loading framework. SwiftUI supported.
A pure Swift high-performance asynchronous image loading framework. SwiftUI supported.

Longinus Longinus is a pure-Swift high-performance asynchronous web image loading,caching,editing framework. It was learned from Objective-C web image

An image compositing framework written in Swift.

An asynchronous, multithreaded, image compositing framework written in Swift. Installation CocoaPods Add Overlay to your Podfile: pod 'OverlayComposit

DOMKit - Swift framework to interact with the DOM in the browser

DOMKit Swift framework to interact with the DOM in the browser. Note: This proje

CameraEngine: The most advanced Camera framework in Swift
CameraEngine: The most advanced Camera framework in Swift

CameraEngine THIS REPOSITORY REFACTORED FROM ( https://github.com/remirobert/Cam

APNGKit is a high performance framework for loading and displaying APNG images in iOS and macOS.
APNGKit is a high performance framework for loading and displaying APNG images in iOS and macOS.

APNGKit is a high performance framework for loading and displaying APNG images in iOS and macOS. It's built on top of a modified version of libpng wit

SharkCardScan is a Credit/Debit Card scanner built using Apple's Vision Framework.
SharkCardScan is a Credit/Debit Card scanner built using Apple's Vision Framework.

iOS Credit/Debit card scanner, built using Apple's Vision Framework.

SwiftUI Image loading and Animation framework powered by SDWebImage
SwiftUI Image loading and Animation framework powered by SDWebImage

SDWebImageSwiftUI What's for SDWebImageSwiftUI is a SwiftUI image loading framework, which based on SDWebImage. It brings all your favorite features f

Comments
  • πŸ“ Remove Package.swift, add details to readme

    πŸ“ Remove Package.swift, add details to readme

    We've decided to not bother with updating the main branch to simplify deployment of our SwiftPM package release. This PR removes the Package.swift file from the repo and adds details to the readme for how users can find more info. After this change, the main branch is effectively just a README.md for humans and a link to the tags page where new versions will show up.

    Also, the link to our iOS installation docs was broken as the URL has changed recently.

    documentation 
    opened by phatblat 4
  • πŸš€ Release 1.1.9-alpha1

    πŸš€ Release 1.1.9-alpha1

    Downloaded CocoaPods tarballs from:

    • https://software.ditto.live/cocoa/DittoObjC/1.1.9-alpha1/dist/DittoObjC-dist.tar.gz
    • https://software.ditto.live/cocoa/DittoSwift/1.1.9-alpha1/dist/DittoSwift-dist.tar.gz

    Removed code signing from frameworks:

    codesign --remove-signature DittoObjC-dist/DittoObjC.xcframework/ios-arm64_x86_64-simulator/DittoObjC.framework/
    codesign --remove-signature DittoObjC-dist/DittoObjC.xcframework/macos-arm64_x86_64/DittoObjC.framework/
    codesign --remove-signature DittoSwift-dist/DittoSwift.xcframework/ios-arm64_x86_64-simulator/DittoSwift.framework/
    codesign --remove-signature DittoSwift-dist/DittoSwift.xcframework/macos-arm64_x86_64/DittoSwift.framework/
    

    The ios-arm64/ frameworks weren't signed.

    opened by phatblat 1
  • Restore Package.swift on main branch

    Restore Package.swift on main branch

    This is affecting the Swift Package Index, as noted on #12:

    We rely really heavily on there being a Package.swift on the default branch to determine lots of the package metadata that we display on the package page. Removing one from a project that originally had one doesn't cause immediate problems, but we do remove packages that do this as they wouldn't pass validation if submitted in this state.

    I'm writing a note here as it's going to break your SPI badges that you added to your README. We're thinking about ways to deal with this issue, but it's a situation that's quite tricky for us to cope with.

    bug 
    opened by phatblat 0
  • πŸ”– Release Ditto 1.1.1

    πŸ”– Release Ditto 1.1.1

    DittoSwift

    • Added: Combine publisher APIs obviating the CombineDitto extension library
      • Added: remotePeersPublisher() method to Ditto class
      • Added: fetchAttachmentPublisher(attachmentToken:) method to DittoCollection class
      • Added: liveQueryPublisher() method to DittoPendingCursorOperation class
      • Added: singleDocumentLiveQueryPublisher() method to DittoPendingIDSpecificOperation class
    • Added: Experimental Bus API
      • Added: dittoBus(_, didReceiveSingleMessage:) method to DittoBusDelegate protocol
      • Added: dittoBus(_, didReceiveIncomingStream:, fromPeer:) method to DittoBusDelegate protocol
      • Removed: dittoBus(_, didReceive:) method from `DittoBusDelegate protocol
    • Added: Experimental mesh roles API
      • Added: setMeshRole(meshRole:, ditto:) method to DittoExperimental class
      • Added: setPriorityForMeshRole(_, forMeshRole:, ditto:) to DittoExperimental class
    • Fixed: Improved AWDL reliability on iOS 12

    DittoObjC

    • Added: Experimental Bus API
      • Changed: DITBus.delegate property is now weak
      • Added: -sendSingleUnreliableMessage:toAddress:completion: method to DITBus class
      • Added: -sendSingleReliableMessage:toAddress:completion: method to DITBus class
      • Added: -openStreamToAddress:reliability:completion: method to DITBus class
      • Added: -ditBus:didReceiveSingleMessage: method to DITBusDelegate protocol
      • Added: -ditBus:didReceiveIncomingStream:fromPeer: method to DITBusDelegate protocol
      • Removed: -ditBus:didReceiveMessage: method from DITBusDelegate protocol
      • Added: DITBusStream class
      • Added: DITBusStreamDelegate protocol
    • Added: Experimental mesh roles API
      • Added: -setMeshRole(meshRole:ditto:) method to DITExperimental class
      • Added: -setPriorityForMeshRole(_:forMeshRole:ditto:) to DITExperimental class
    • Fixed: Improved AWDL reliability on iOS 12
    opened by phatblat 0
Releases(3.0.0)
  • 3.0.0(Dec 16, 2022)

  • 3.0.0-alpha3(Dec 12, 2022)

  • 3.0.0-alpha2(Dec 6, 2022)

  • 3.0.0-alpha1(Dec 1, 2022)

  • 2.1.0(Nov 2, 2022)

  • 2.0.8(Oct 21, 2022)

  • 2.0.7(Sep 23, 2022)

  • 2.0.6(Sep 15, 2022)

    Swift

    • Fixed: The SwiftPM .zip artifact included an unintended .swiftsourceinfo file which causes mismatched versions of the Swift toolchain to cause errors. CocoaPods artifacts were unaffected.
    • Fixed: Ensure Ditto internal auth client is shut down correctly when it's no longer needed

    ObjC

    • Fixed: Ensure Ditto internal auth client is shut down correctly when it's no longer needed
    Source code(tar.gz)
    Source code(zip)
  • 1.1.11(Sep 9, 2022)

  • 2.0.5(Sep 8, 2022)

  • 2.0.4(Sep 1, 2022)

  • 2.0.3(Sep 1, 2022)

    DittoSwift & DittoObjC

    • Fixed: rare crash due to a race condition within Ditto's Bluetooth subsystem.
    • Changed: presence data is no longer synced with the big peer.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.2(Aug 26, 2022)

    DittoSwift

    • Fixed: Reduced size of DittoSwift framework
    • Changed: performing an .exec() call, outside the scope of a store.write { } block, no longer tries to obtain a write transaction and instead uses a read transaction.

    DittoObjC

    • Changed: performing an -exec call, outside the scope of a [store write:^{ }] block, no longer tries to obtain a write transaction and instead uses a read transaction.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.1(Aug 13, 2022)

  • 2.0.1-experimental.xamarin.ios(Aug 5, 2022)

  • 2.0.0(Aug 3, 2022)

    Version 2 is a major update with a lot of changed/removed APIs. See our 2.0 Migration Guide for discussion.

    DittoSwift

    • Note: peers running 2.0.0 are able to sync with peers running at least version 1.1.8 of the SDK.
    • Added: support for explicitly typing values as registers. This is via 2 new types: DittoRegister and DittoMutableRegister, and new registerValue value accessors added to DittoDocumentPath and DittoMutableDocumentPath.
    • Added: DittoCounter and DittoMutableCounter types resembling the CRDT type underneath, which replace the old counter mechanics. A new counter value accessor has been added to DittoDocumentPath and DittoMutableDocumentPath, which returns a DittoCounter or a DittoMutableCounter respectively, if one is present at the document path specified.
    • Added: support for accessing and creating RGAs (Replicated Growable Arrays), which was the default CRDT type for arrays in Ditto v1. There are 2 new types: DittoRGA and DittoMutableRGA in v2, and new rga value accessors added to DittoDocumentPath and DittoMutableDocumentPath. Note that these are deprecated though and arrays should instead be used in registers (which is now the default).
    • Changed: arrays now default to being Register arrays. This means that when you want to update a property in a document that's an array you need to set the whole value as the new array. You can't perform mutating operations on an array in a document other than to fully replace it.
    • Added: value accessor properties have been added to DittoDocumentID: value, string{Value}, bool{Value}, int{Value}, uint{Value}, float{Value}, double{Value}, array{Value}, dictionary{Value}.
    • Changed: the keys DittoAccessLicense and DittoLicenseToken in Info.plist will now fail with a fatal error instead of logging a deprecation warning. Please use the key DittoOfflineOnlyLicenseToken instead.
    • Changed: renamed identity onlinePlaygroundV2 to just onlinePlayground, which replaces the previously deprecated onlinePlayground.
    • Changed: renamed Ditto method tryStartSync() to just startSync(), which replaces the previously deprecated startSync().
    • Removed: deprecated DittoRemotePeerV2 property meshRole, please queryOverlapGroup instead.
    • Removed: deprecated type DittoPeersObserver, please use DittoObserver instead.
    • Removed: deprecated DittoDocumentID method toNative(), please use property value instead.
    • Removed: deprecated DittoScopedWriteTransaction method find(query:), please use find() instead.
    • Removed: deprecated DittoScopedWriteTransaction methods insert() and insertWithStrategy(), please use upsert() and upsertWithStrategy() instead.
    • Removed: deprecated DittoCollection methods insert() and insertWithStrategy(), please use upsert() and upsertWithStrategy() instead.
    • Removed: deprecated identities development and online, please use the available ones instead.
    • Removed: deprecated Ditto methods setAccessLicense() and setLicenseToken(), please use setOfflineOnlyLicenseToken() instead.
    • Removed: deprecated Ditto method setTransportConfig(), please set the transportConfig property directly.
    • Removed: deprecated DittoAuthenticator method isAuthenticated() and property userID, please use status instead.
    • Removed: DittoWriteStrategy.overwrite."

    DittoObjC

    • Note: peers running 2.0.0 are able to sync with peers running at least version 1.1.8 of the SDK.
    • Added: support for explicitly typing values as registers. This is via 2 new types: DITRegister and DITMutableRegister, and new lwwRegister value accessors added to DITDocumentPath and DITMutableDocumentPath.
    • Added: DITCounter and DITMutableCounter types resembling the CRDT type underneath, which replace the old counter mechanics. A new counter value accessor has been added to DITDocumentPath and DITMutableDocumentPath, which returns a DITCounter or a DITMutableCounter respectively, if one is present at the document path specified.
    • Added: support for accessing and creating RGAs (Replicated Growable Arrays), which was the default CRDT type for arrays in Ditto v1. There are 2 new types: DITRGA and DITMutableRGA in v2, and new rga value accessors added to DITDocumentPath and DITMutableDocumentPath. Note that these are deprecated though and arrays should instead be used in registers (which is now the default).
    • Changed: arrays now default to being Register arrays. This means that when you want to update a property in a document that's an array you need to set the whole value as the new array. You can't perform mutating operations on an array in a document other than to fully replace it.
    • Added: value accessor properties have been added to DITDocumentID: value, string{Value}, boolValue, integer{Value}, number{Value}, array{Value}, dictionary{Value}.
    • Added: DITIdentity method variants initSharedKey:... without the siteID parameter, leaving this up to Ditto to generate.
    • Changed: DittoSignalNextBlock has been renamed to DITSignalNextBlock.
    • Changed: the keys DittoAccessLicense and DittoLicenseToken in Info.plist will now throw an exception instead of logging a deprecation warning. Please use the key DittoOfflineOnlyLicenseToken instead.
    • Changed: renamed identity type DittoOnlinePlaygroundV2Identity to just DittoOnlinePlaygroundIdentity, including the corresponding DITIdentity initializers. This replaces the previously deprecated identity of type DittoOnlinePlaygroundIdentity, including he corresponding DITIdentity initializers.
    • Changed: renamed method DITDitto method tryStartSync: to just startSync: which replaces the previously deprecated DITDitto method startSync.
    • Removed: deprecated DITRemotePeerV2 property meshRole, please use queryOverlapGroup instead.
    • Removed: deprecated DITDocumentID method toNative, please use value instead.
    • Removed: all deprecated variants of DITScopedWriteTransaction method insert:..., please use the corresponding upsert:... variants instead.
    • Removed: all deprecated variants of DITCollection method insert:..., please use the corresponding upsert:... variants instead.
    • Removed: deprecated identities of type DittoDevelopment- and -OnlineIdentity, including the corresponding DITIdentity initializers. Please use the available ones instead.
    • Removed: deprecated DITDitto methods setAccessLicense: and setLicenseToken:error:, please use setOfflineOnlyLicenseToken:error: instead.
    • Removed: deprecated DITDitto getter activated, please use the activated property, or the isActivated getter instead.
    • Removed: deprecated DITAuthenticator properties isAuthenticated and userID, please use status instead.
    • Removed: DITWriteStrategyOverwrite.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha1(Jul 20, 2022)

  • 1.1.10(Jul 7, 2022)

    • Changed: reduced total memory overhead during sync.
    • Fixed: private class inside the Ditto SDK was named CBOR and conflicted with a private Apple class named exactly the same, which produced a warning at launch time.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.10-experimental.all-product-headers-yaml-issue.1(Jun 22, 2022)

  • 1.1.9(Jun 16, 2022)

    DittoSwift

    • Changed: reduced CRDT memory overhead.
    • Changed: HTTP/WebSocket service now allows any origin for CORS, so it may be used from a webapp on localhost.\n\n- Fixed: a peer using an online identity would fail to sync peer-to-peer after app restarts.
    • Fixed: DittoDelegate method dittoIdentityProviderAuthenticationRequest(ditto:request:) would receive a DittoAuthenticationRequest with some properties being incorrectly set to nil.

    DittoObjC

    • Changed: reduced CRDT memory overhead.
    • Changed: HTTP/WebSocket service now allows any origin for CORS, so it may be used from a webapp on localhost.
    • Fixed: a peer using an online identity would fail to sync peer-to-peer after app restarts.
    • Fixed: DITDittoDelegate method ditto:identityProviderAuthenticationRequest: would receive a DITAuthenticationRequest with some properties being incorrectly set to nil.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.9-alpha1(Jun 14, 2022)

  • 1.1.8(Jun 6, 2022)

  • 1.1.6(May 6, 2022)

    • Fixed: cloud sync would stop working when setting a newly created transport config.
    • Fixed: cloud sync would stop working when setting a newly created transport config.
    • Fixed: a correctness issue in replication when peer permissions changed in the middle of a replication exchange.
    • Fixed: error when querying a collection and there was a type mismatch for a field being used in a comparison in the query.
    • Fixed: restarting an app too quickly could lead to multiple connection attempts to rejoin peers in the mesh.
    • Fixed: apps using OnlinePlaygroundV2 identities could experience a one minute delay before peer-to-peer sync occurs.
    • Changed: improvements to Ditto mesh performance via fastest-available-transport prioritization.
    Source code(tar.gz)
    Source code(zip)
    DittoObjC.xcframework.zip(130.52 MB)
    DittoSwift.xcframework.zip(3.61 MB)
  • 1.1.4(Apr 8, 2022)

  • 1.1.3(Mar 21, 2022)

    DittoSwift

    • Added: onlinePlaygroundV2 case to DittoIdentity allowing for basic authentication for playgrounds
    • Deprecated: onlinePlayground case of DittoIdentity, use newly added onlinePlaygroundV2 instead
    • Fixed: sync issues due to inconsistent handling of app IDs across SDKs
    • Fixed: document IDs are now validated when synced and removed if invalid (some of our early versions of the SDK stored malformed IDs under certain circumstances)

    DittoObjC

    • Added: DittoOnlinePlaygroundV2Identity identity type and corresponding initializers for DITIdentity (initOnlinePlaygroundV2WithAppID:...) allowing for basic authentication for playgrounds
    • Deprecated: DittoOnlinePlaygroundIdentity identity type and corresponding initializers, use newly added DittoOnlinePlaygroundV2Identity instead
    • Fixed: document IDs are now validated when synced and removed if invalid (some of our early versions of the SDK stored malformed IDs under certain circumstances)
    Source code(tar.gz)
    Source code(zip)
    DittoObjC.xcframework.zip(132.53 MB)
    DittoSwift.xcframework.zip(3.83 MB)
  • 1.1.2(Feb 25, 2022)

    Objective-C

    • Added: property isReady to experimental DittoBusStream to check if a message may be enqueued.
    • Added: method setOfflineOnlyLicenseToken:error: to class DITDitto as replacement for now deprecated setLicenseToken:error:.
    • Changed: didReceiveIncomingStream delegate parameter from stream to busStream.
    • Changed: made DittoBusStream, DittoRemotePeerV2, and DittoAddress adopt Equatable and Hashable protocols.
    • Changed: made DittoRemotePeerV2 adopt the Identifiable protocol.
    • Deprecated: method setLicenseToken:error: of class DITDitto, please use newly added setOfflineOnlyLicenseToken:error: instead.

    Swift

    • Added: property isReady to experimental DittoBusStream to check if a message may be enqueued.
    • Added: method setOfflineOnlyLicenseToken() to class Ditto as replacement for now deprecated setLicenseToken().
    • Changed: didReceiveIncomingStream delegate parameter from stream to busStream.
    • Changed: made DittoBusStream, DittoRemotePeerV2, and DittoAddress adopt Equatable and Hashable protocols.
    • Changed: made DittoRemotePeerV2 adopt the Identifiable protocol.
    • Deprecated: method setLicenseToken() of class Ditto, please use newly added setOfflineOnlyLicenseToken() instead.

    https://docs.ditto.live/changelog

    Source code(tar.gz)
    Source code(zip)
    DittoObjC.xcframework.zip(129.43 MB)
    DittoSwift.xcframework.zip(3.79 MB)
  • 1.1.1(Feb 13, 2022)

    DittoSwift

    • Added: Combine publisher APIs obviating the CombineDitto extension library
      • Added: remotePeersPublisher() method to Ditto class
      • Added: fetchAttachmentPublisher(attachmentToken:) method to DittoCollection class
      • Added: liveQueryPublisher() method to DittoPendingCursorOperation class
      • Added: singleDocumentLiveQueryPublisher() method to DittoPendingIDSpecificOperation class
    • Added: Experimental Bus API
      • Added: dittoBus(_, didReceiveSingleMessage:) method to DittoBusDelegate protocol
      • Added: dittoBus(_, didReceiveIncomingStream:, fromPeer:) method to DittoBusDelegate protocol
      • Removed: dittoBus(_, didReceive:) method from `DittoBusDelegate protocol
    • Added: Experimental mesh roles API
      • Added: setMeshRole(meshRole:, ditto:) method to DittoExperimental class
      • Added: setPriorityForMeshRole(_, forMeshRole:, ditto:) to DittoExperimental class
    • Fixed: Improved AWDL reliability on iOS 12

    DittoSwift API Reference

    DittoObjC

    • Added: Experimental Bus API
      • Changed: DITBus.delegate property is now weak
      • Added: -sendSingleUnreliableMessage:toAddress:completion: method to DITBus class
      • Added: -sendSingleReliableMessage:toAddress:completion: method to DITBus class
      • Added: -openStreamToAddress:reliability:completion: method to DITBus class
      • Added: -ditBus:didReceiveSingleMessage: method to DITBusDelegate protocol
      • Added: -ditBus:didReceiveIncomingStream:fromPeer: method to DITBusDelegate protocol
      • Removed: -ditBus:didReceiveMessage: method from DITBusDelegate protocol
      • Added: DITBusStream class
      • Added: DITBusStreamDelegate protocol
    • Added: Experimental mesh roles API
      • Added: -setMeshRole(meshRole:ditto:) method to DITExperimental class
      • Added: -setPriorityForMeshRole(_:forMeshRole:ditto:) to DITExperimental class
    • Fixed: Improved AWDL reliability on iOS 12

    DittoObjc API Reference

    Docs: https://docs.ditto.live/installation/ios

    Source code(tar.gz)
    Source code(zip)
    DittoObjC.xcframework.zip(123.21 MB)
    DittoSwift.xcframework.zip(3.77 MB)
  • 1.1.0(Feb 2, 2022)

    • Changed: improved peer-to-peer algorithms to create meshes that are more efficient and diverse.
    • Changed: improved routing algorithms for more efficiency.
    • Changed: improved performance of query parsing.
    • Added: property isSyncActive to class Ditto.
    • Added: methods logout and logout: to class DITAuthenticator.
    • Added: set of APIs to observe authentication status, see (see API reference for DITAuthenticator and DITAuthenticationDelegate).
    • Added: method upsert: & friends to classes DITCollection and DITScopedWriteTransaction (as a replacement for insert: & friends) which by default merges the newly inserted document if one with the same ID already exists.
    • Deprecated: properties isAuthenticated and userID of class DITAuthenticator in favor of newly introduced property status.
    • Deprecated: methods insert: & frinds of classes DITCollection and DITScopedWriteTransaction in favor of newly introduced upsert: & friends.",

    API Docs

    Source code(tar.gz)
    Source code(zip)
    DittoSwift.xcframework.zip(3.44 MB)
Owner
Ditto
An SDK that allows apps to sync without the internet
Ditto
🎨 Mondrian is lightweight Swift package that provides a universal basis for your design system's color palette.

??‍?? Mondrian Mondrian provides a universal basis on which to build your design system's color palette right from your codebase. With support for all

Klaas Schoenmaker 1 Nov 24, 2021
Generate a list of licenses for the Swift Package libraries that your app depends on.

LicenseList Generate a list of licenses for the Swift Package libraries that your app depends on. Example Requirements Written in Swift 5 Compatible w

Cybozu 40 Dec 19, 2022
A Swift package to convert a colour to a name using Wikipedia's colour list

ColorName Usage import ColorName SwiftUI let myColorName = getName(for: Color.red) print(myColorName) UIKit let myColorName = getName(for: UIColor.red

Jia Chen 3 Aug 9, 2022
Swift Package Manager plug-in to compile Metal files that can be debugged in Xcode Metal Debugger.

MetalCompilerPlugin Swift Package Manager plug-in to compile Metal files that can be debugged in Xcode Metal Debugger. Description Swift Package Manag

Jonathan Wight 10 Oct 30, 2022
This package integrates a UIImagePickerController into a SwiftUI app.

This Swift Package integrates a UIImagePickerController into a SwiftUI app and allows a user to select, scale and position an image to be cropped and saved as a conatct's photo, similar to the stock iOS Contacts app.

Rillieux 58 Dec 26, 2022
PrettyBorder is a SwiftUI package for managing an customized border and background at any kind of view.

PrettyBorder Description PrettyBorder is a SwiftUI package for managing an customized border and background at any kind of view. Preview of end result

Ahmet Giray Uçar 2 Oct 13, 2021
URLImage is a package that holds an easy way of showing images from an URL.

URLImage Overview URLImage is a package that holds an easy way of showing images from an URL. Usually this processes should take the following process

RamΓ³n Dias 1 Nov 1, 2021
PerFolderResourcesPublishPlugin - Per-folder resources plugin for the Publish package

Per-folder resources for Publish A Publish plugin that copies per-folder resourc

Tom Harrington 1 Feb 18, 2022
GPUImage 2 is a BSD-licensed Swift framework for GPU-accelerated video and image processing.

GPUImage 2 Brad Larson http://www.sunsetlakesoftware.com @bradlarson [email protected] Overview GPUImage 2 is the second generation of th

Brad Larson 4.8k Dec 29, 2022
GPUImage 3 is a BSD-licensed Swift framework for GPU-accelerated video and image processing using Metal.

GPUImage 3 Janie Clayton http://redqueengraphics.com @RedQueenCoder Brad Larson http://www.sunsetlakesoftware.com @bradlarson contact@sunsetlakesoftwa

Brad Larson 2.4k Jan 3, 2023