What is Cereal?

Cereal is a serialization framework built for Swift. Its intended as a substitution for NSCoding to allow advanced Swift features. With NSCoding, you cannot encode or decode a Swift struct, enum, or generic class. Cereal solves this issue through deferred decoding with generics, and a protocol that doesn’t depend on NSObjectProtocol.

Please note that the data stored in Cereal 2.0 is different from Cereal 1.3, and while the API is the same they are not compatible. Do not expect data written by 1.3 to be readable by 2.0.

Features:

  • Encode and decode String, Bool, Int, Int64, Float, Double, NSDate and NSURL
  • Encode and decode Arrays, Arrays of Dictionaries, Dictionaries, and Dictionaries of Arrays
  • Encode and decode your own enum types
  • Encode and decode your own struct types
  • Encode and decode your own class types, even if they don’t inherit from NSObject
  • Encode and decode as a protocol
  • Encode and decode types with generics
  • Encode and decode RawRepresentable types, whose RawValue’s are also encodable/decodable
  • Enforce decoding of the same type as encoded with
  • Comprehensive test suite

Overview

  • Pricing: Free
  • Resource Link: https://github.com/Weebly/Cereal
  • Resource Maker: Weebly
  • Mobile Platform Destination: iOS Apps
  • Mobile Platform Support: Native iOS
  • Programming Languages: Swift
  • iOS Versions Supported: iOS 8.0+, iOS 9.0+, iOS 10.0+, iOS 11.0+, iOS 12.0+
  • CocoaPods: Cereal
  • Carthage: Weebly/Cereal