Simplified Serialization with Property Wrappers
Make Complex Codable Serialization a breeze with declarative annotations!
@CustomCodable @SnakeCase
struct User: Codable {
let firstName: String
let lastName: String
@SecondsSince1970DateCoding
var joinDate: Date
@CustomCodingKey("data")
var imageData: Data
}
3.0 released! Release Notes
Full DocC documentation here thanks to the Swift Package Index!
URL:
https://github.com/GottaGetSwifty/CodableWrappers.git
Manifest:
dependencies: [
.package(url: "https://github.com/GottaGetSwifty/CodableWrappers.git", .upToNextMajor(from: "3.0.0" )),
]
*WARNING* CocoaPods is not currently supported for version 3.0 to avoid complications with Swift Macros.
pod 'CodableWrappers', '~> 2.0.0'
- @CustomCodable
- @CustomCodingKey(String)
- @CodingKeyPrefix(String)
- @CodingKeySuffix(String)
- @CamelCase
- @FlatCase
- @PascalCase
- @UpperCase
- @SnakeCase
- @CamelSnakeCase
- @PascalSnakeCase
- @ScreamingSnakeCase
- @KebabCase
- @CamelKebabCase
- @PascalKebabCase
- @ScreamingKebabCase
- @EncodeNulls
- Lossy Collections
- Empty Defaults
- Other Fallbacks
- @OmitCoding
- @Base64Coding
- @SecondsSince1970DateCoding
- @MillisecondsSince1970DateCoding
- @DateFormatterCoding<DateFormatterStaticCoder>
- @ISO8601Coding
- @ISO8601DateFormatStyleCoding<ISO8601DateFormatterStaticCoder>
- @NonConformingFloatCoding<ValueProvider>
- @NonConformingDoubleCoding<ValueProvider>
- Bool Coding
- Additional Customization
- Property Mutability
- Only Encoding or Decoding
- 3.x supports Swift 5.9+
- 2.x supports Swift 5.2+
- 1.x supports Swift 5.1+
If there is a standard Serialization or Coding Key strategy that could be added feel free to open an issue requesting it and/or submit a pull request with the new option.