Swiftpack.co - binaryscraping/swift-cache as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by binaryscraping.
binaryscraping/swift-cache 0.1.0
A type-safe swifty wrapper around NSCache.
⭐️ 1
🕓 3 days ago
.package(url: "https://github.com/binaryscraping/swift-cache.git", from: "0.1.0")


A type-safe swifty wrapper around NSCache.

Getting Started

Add swift-cache as a dependency to your project using SPM.

.package(url: "https://github.com/binaryscraping/swift-cache", from: "0.1.0"),

And in your application/target, add "Cache" to your "dependencies".

  name: "YourTarget",
  dependencies: [
    .product(name: "Cache", package: "swift-cache"),


Cache is accessed through a Cache.Key type, so start by defining your keys.

extension Cache.Key where Value == String {
  // A key that stores a string value.
  static let myKey = Cache.Key("my_key")

Instantiate a live implementation of the cache type.

let cache = Cache.live()


cache.set("string value", at: .myKey)

You can provide an optional lifetime in seconds for the entry.

cache.set("string value", at: .myKey, lifetime: 60)


let value = cache.retrieve(at: .myKey)


cache.remove(at: .myKey)

Usage in tests

This library provides some helpers for easy usage on tests such as:


An implementation of Cache that does nothing when called.

let cache = Cache.noop


An implementation of Cache that fails with an XCTFail call.

var setEntryCalled = false

let cache = Cache.failing
    setEntry: { entry, key in 
      setEntryCalled = true
cache.set("string value", at: .myKey)

At the code snipped above all calls to a method that wasn't overriden will terminate with a XCTFail.


Stars: 1
Last commit: 3 days ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Related Packages

Release Notes

0.1.0 🚀
3 days ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics