This patch release fixes a crashing bug introduced in 0.3.0 that occurred when decoding two-byte values from misaligned memory.
This minor release adds a decodeRemainder
method to BinaryDecodingContainer
and drops support for iOS 12, macOS 10.12-10.14, and Swift 4.
iOS 12, macOS 10.12-10.14, and Swift 4 are no longer supported.
- Add decodeRemainder to BinaryDecodingContainer. (#47) (featherless)
This patch releases updates the CocoaPods spec to include all BinaryCodable source. It was previously missing the coder implementations.
- Include all source files in the podspec (#45) (Wolfgang Profer)
This minor unstable release renames sequentialContainer
to container
for both the BinaryEncoder and BinaryDecoder types, adds support for BinaryFloatingPoint
decoding and encoding, automatic BinaryCodable conformance for floating point and array types, and a variety of performance improvements.
BinaryDecoder
and BinaryEncoder
's sequentialContainer
has been renamed to container
. This is a straightforward find-and-replace operation.
Array<BinaryCodable>
types automatically conform to BinaryCodable. It's easier now to code sequential binary objects like so:
// Decoding
let objects = try container.decode([SomeBinaryObject].self)
// Encoding
try container.encode(objects)
Float
and Double
RawRepresentable types automatically conform to BinaryCodable.
- Remove excessive conditionals and buffer containment. (#40) (featherless)
- Remove unnecessary cast. (Jeff Verkoeyen)
- Fix bug and improve performance. (#39) (featherless)
- Remove unnecessary Data creation. (#38) (featherless)
- Use dropFirst instead of subscript notation when reading data. (#37) (featherless)
- Add floating point support. (#23) (featherless)
- Add array coding support + tests. (#14) (featherless)
- Drop "Sequential" from the container name. (#12) (featherless)
- Update all docs with new container APIs. (#41) (featherless)
- Update README.md (featherless)
- Update README.md (featherless)
- Add BinaryCookies (featherless)
- Add support for embedded types in the proto decoder. (#35) (featherless)
- Add bytes decoding support to the proto decoder. (#34) (featherless)
- Add String support to the proto decoder. (#33) (featherless)
- Add bool support to the proto decoder. (#32) (featherless)
- Add sint64 support to the proto decoder. (#31) (featherless)
- Add uint64 decoding support. (#30) (featherless)
- Add support for optional proto decoding. (#29) (featherless)
- Add double decoding support to the proto decoder. (#28) (featherless)
- Rename the message fields to match the underlying types. (#27) (featherless)
- Add proper fixed64 support to the proto decoder. (#26) (featherless)
- Add fixed32 support to the proto decoder. (#25) (featherless)
- Add double/fixed64 support to the proto proof of concept. (#24) (featherless)
- Add a rudimentary Codable-compatible proto decoder built on top of a BinaryCodable message decoder. (#22) (featherless)
- Add sint32 proto tests (#21) (featherless)
- Add int64 proto tests. (#20) (featherless)
- Add int32 overflow tests to verify the behavior of the protoc compiler. (#19) (featherless)
- Add proof of concept protobuf decoder tests (#15) (featherless)
- Update Swift to the latest development snapshot (#13) (featherless)
- Update README.md (featherless)
- Fix typo in readme. (#10) (featherless)
- Add missing linux tests. (#9) (featherless)
This is the first minor, unstable release of BinaryCodable. The public API for this library is subject to change unexpectedly until 1.0.0 is reached, at which point breaking changes will be mitigated and communicated ahead of time. This initial release includes the following features:
- Encode from Swift types to
Data
. - Decode from
Data
to Swift types. - Efficiently encode/decode large blocks of arbitrary data.
- Lazy decoding (read bytes from a source only as they're needed).
- Encode and decode fixed-width integer types.
- Encode and decode strings with or without terminators.
- Cap decoding containers to a maximum length.