PINCache - Fast, non-deadlocking parallel object cache for iOS, tvOS and OS X

  •        50

PINCache is a fork of TMCache re-architected to fix issues with deadlocking caused by heavy use. It is a key/value store designed for persisting temporary objects that are expensive to reproduce, such as downloaded data or the results of slow processing. It is comprised of two self-similar stores, one in memory (PINMemoryCache) and one on disk (PINDiskCache), all backed by GCD and safe to access from multiple threads simultaneously. On iOS, PINMemoryCache will clear itself when the app receives a memory warning or goes into the background. Objects stored in PINDiskCache remain until you trim the cache yourself, either manually or by setting a byte or age limit. Both PINMemoryCache and PINDiskCache use locks to protect reads and writes. PINCache coordinates them so that objects added to memory are available immediately to other threads while being written to disk safely in the background. Both caches are public properties of PINCache, so it's easy to manipulate one or the other separately if necessary.

https://github.com/pinterest/PINCache

Tags
Implementation
License
Platform

   




Related Projects

PinterestSegment - A Pinterest-like segment control with masking animation.

  •    Swift

A Pinterest-like segment control with masking animation. Create a Cartfile that lists the framework and run carthage update. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/PinterestSegment.framework to an iOS project.

Texture - Smooth asynchronous user interfaces for iOS apps.

  •    Objective-C

Texture is available via CocoaPods or Carthage. See our Installation guide for instructions. Texture's basic unit is the node. An ASDisplayNode is an abstraction over UIView, which in turn is an abstraction over CALayer. Unlike views, which can only be used on the main thread, nodes are thread-safe: you can instantiate and configure entire hierarchies of them in parallel on background threads.

VGPlayer - 📺 A simple iOS video player by Vein.

  •    Swift

Swift developed based on AVPlayer iOS player,support horizontal gestures Fast forward, pause, vertical gestures Support brightness and volume adjustment, support full screen, adaptive screen rotation direction. VGPlayer Cache Reference VIMediaCache implementation.

GoogleReporter - Easily integrate with Google Analytics in your iOS app

  •    Swift

Easily integrate Google Analytics into your iOS, macOS, and tvOS app without downloading any of the Google SDKs. Works with Carthage & CocoaPods or just put GoogleReporter.swift into your project.

JLRoutes - URL routing library for iOS with a simple block-based API

  •    Objective-C

JLRoutes is a URL routing library with a simple block-based API. It is designed to make it very easy to handle complex URL schemes in your application with minimal code. JLRoutes is available for installation using CocoaPods or Carthage (add github "joeldev/JLRoutes" to your Cartfile).


KTVHTTPCache - A smart media cache framework.

  •    Objective-C

KTVHTTPCache is a smart media cache framework. It can cache HTTP request, very suitable for media resources. Run carthage update to build the framework and drag the built KTVHTTPCache.framework and KTVCocoaHTTPServer.framework into your Xcode project.

TKRubberIndicator - A rubber animation pagecontrol

  •    Swift

Create a Cartfile that lists the framework and run carthage update. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/TKRubberPageControl.framework to an iOS project.

TKSwitcherCollection - An animation switch collection

  •    Swift

Create a Cartfile that lists the framework and run carthage update. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/TKSwitcherCollection.framework to an iOS project. We would love for you to contribute to TKSwitcherCollection, check the LICENSE file for more info.

SwiftFrameworkTemplate - A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file

  •    Ruby

A template for new Swift Framework. For future runs you can shorten the command to cookiecutter SwiftFrameworkTemplate. However, if you want to use the most recent template you should still run the full command above.

SwiftProgressHUD - 📦 SwiftProgressHUD is a user-friendly pure swift HUD. 支持Cocoapods 及 Carthage

  •    Swift

SwiftProgressHUD is an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread. The HUD is meant as a replacement for the undocumented, private UIKit UIProgressHUD with some additional features. You will need the latest developer tools in order to build SwiftProgressHUD. Old Xcode versions might work, but compatibility will not be explicitly maintained.

Hokusai - A Swift library to provide a bouncy action sheet

  •    Swift

Hokusai is a Swift library that provides a bouncy action sheet. It will give the users a fancy experience without taking pains coding the cool animation. Hokusai is compatible with Swift3. Drop in the Classes folder to your Xcode project. You can also use cocoapods or Carthage.

BetterSegmentedControl - An easy to use, customizable replacement for UISegmentedControl & UISwitch.

  •    Swift

BetterSegmentedControl is an easy to use, customizable replacement for UISegmentedControl and UISwitch written in Swift. If you prefer not to use CocoaPods or Carthage, you can integrate BetterSegmentedControl into your project manually.

PinpointKit - Send better feedback

  •    Swift

PinpointKit is an open-source iOS library in Swift that lets your testers and users send feedback with annotated screenshots using a simple gesture. Note: ScreenshotDetector depends on the Photos framework to access the user’s photo library. This requires you to add an entry for the NSPhotoLibraryUsageDescription key in your Info.plist file describing your app’s use of the user’s photo library. As of iOS 10, failure to provide a value for this key could cause your submission to the App Store to be rejected by Apple, or cause your app to exit upon attempting to access the user’s photo library. ScreenshotDetector is excluded by default when installing via CocoaPods, but is included otherwise.

TransitionButton - UIButton sublass for loading and transition animation.

  •    Swift

To run the example project, clone the repo, then open the workspace TransitionButton.xcworkspace run using iOS Example scheme. Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

Viperit - Viper Framework for iOS using Swift v4

  •    Swift

Write an iOS app following VIPER architecture. But in an easy way. CocoaPods is a dependency manager for Cocoa projects.

NVActivityIndicatorView - A collection of awesome loading animations

  •    Swift

NVActivityIndicatorView is a collection of awesome loading animations. This is original a fork from DGActivityIndicatorView, inspired by Loaders.css, written in Swift with full implementation of animations, plus more.

SwiftIconFont - Icons fonts for iOS (FontAwesome, Iconic, Ionicon, Octicon, Themify, MapIcon, MaterialIcon)

  •    Swift

Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application. CocoaPods is a dependency manager for Cocoa projects.

URLEmbeddedView - URLEmbeddedView automatically caches the object that is confirmed the Open Graph Protocol

  •    Swift

To run the example project, clone the repo, and run carthage update from the Example directory first. You can get Open Graph Data with OGDataProvider.

EAIntroView - Highly customizable drop-in solution for introduction views.

  •    Objective-C

You can setup EAIntroView using Carthage, CocoaPods or completely manually. Run carthage update in your project directory.