AwesomeCache Versions Save

Delightful on-disk cache (written in Swift)

5.0

7 years ago

Compatibility for Swift 3.0

4.0

7 years ago
  • Add support for Swift 2.3

3.0.1

7 years ago

Fixes a bug that would lead to a crash if a new cache is created with the NSFileProtection option (Thanks @niklassaers)

3.0

7 years ago

AwesomeCache 3 is designed to have a sync API, making it easy to reason about the actual contents of the cache. This decision has been made based on feedback from the community, to keep the API of AwesomeCache small and easy to use.

The internals of the cache use a concurrent dispatch queue, that syncs reads and writes for thread safety. In case a particular caching operation blocks your main thread for too long, consider offloading the read and write operations to a different thread.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
    cache["name"] = "Alex"
}

Further improvements

  • Added a new way to return an expired object in objectForKey: if present (#31)
  • Adds a way to set the NSFileProtectionKey value on the internal NSFileManager. This may be necessary in case you observe odd behaviour when accessing the cache in the background. (#64)
  • Adds a new method to get allObjects from the cache (optionally, expired objects may be queried as well)

2.2

7 years ago
  • An Obj-C NSKeyedUnarchiver was added since it can throw exceptions which can't be caught in Swift (Thanks @JaviSoto)
  • Use a concurrent queue to allow multiple simultaneous reads from the cache. (Thanks @JaviSoto)

2.1

8 years ago
  • Support for watchOS
  • Support for tvOS

2.0

8 years ago
  • Support for Swift 2
  • Updated documentation
  • Changes the internal implementation to use the new NSURL APIs instead of paths

1.0.2

8 years ago
  • fixes a deadlock in objectForKey (thanks @alenofx)
  • keys are now sanitized to make sure the file system is able to persist the cache object

1.0.1

9 years ago

🚀

1.0

9 years ago

Rename AwesomeCache class to Cache. (It is still as awesome as before. ✨)