...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.