Cache doesn't claim to be unique in this area, but it's not another monster library that gives you a god's power. It does nothing but caching, but it does it well. It offers a good public API with out-of-box implementations and great customization possibilities. Cache utilizes Codable in Swift 4 to perform serialization. The cache is built based on a Chain-of-responsibility pattern, in which there are many processing objects, each knows how to do 1 task and delegates to the next one, so can you compose Storage the way you like. All Storage now are generic by default, so you can get a type of safety experience. Once you create a Storage, it has a type constraint that you don't need to specify a type for each operation afterward.
Features
- Work with Swift 4 Codable. Anything conforming to Codable will be saved and loaded easily by Storage
- Hybrid with memory and disk storage
- Many options via DiskConfig and MemoryConfig
- Support expiry and clean up of expired objects
- Thread safe. Operations can be accessed from any queue
- Sync by default. Also support Async APIs