CodableCSV Versions Save

Read and write CSV files row-by-row or through Swift's Codable interface.

0.6.7

2 years ago
  • Xcode 13 has been supported by raising the iOS requirements to iOS 11. The library still supports iOS 7+, but the SPM now defines iOS 11+. If you want to support older OSes, modify the SPM manifest.
  • Support for more than one row delimiter (e.g. for the standard \r\n and \n) at the same time. CSVReader will end a row when one of the row delimiters is encountered. Use just one row delimiter for better performance.

0.6.6

3 years ago
  • CSVReader and CSVDecoder are now "stricter" while parsing CSV data. Now errors are thrown when encountering ill-formed rows, instead of just finishing the parsing process (#34).
  • CSVReader and CSVDecoder ignore empty lines. Usually encountered at the end of a file.
  • Minor enhancements on documentation.

0.6.4

3 years ago
  • CSVWriter encoder is faster for UTF8 encodings.
  • Shift-JIS encoding is now supported (#29).
  • CSVEncoder and CSVDecoder have experienced major speed ups, due to drops on unnecessary retains/releases.

0.6.1

4 years ago
  • The first batch of optimizations have landed.
  • Fix for floating-point encoding/decoding (#20)
  • Change decodeNil() behavior to more closely follow the documentation.
  • decodeIfPresent can now be safely used.

0.6.0

4 years ago
  • Both CSVEncoder and CSVDecoder now support lazy functionality.
  • The lazy API has been renamed to be as similar as possible in the encoder/decoder.
  • README has been expanded with more examples.

0.5.5

4 years ago
  • CSVEncoder/CSVDecoder adopts TopLevelEncoder/TopLevelDecoder when Combine is present.
  • CSVReader and CSVDecoder now also accept InputStreams. The introduction of this feature allows easier usage of CodableCSV by Command-line applications reading information from the .standardInput (i.e. stdin).
  • Most errors thrown by CodableCSV functions are now CSVErrors. All CSVErrors include the failure reason and provide help cues to avoid said problem.
  • Documentation has been expanded to cover all public and internal functionality.

0.5.4

4 years ago
  • CSVDecoder now supports on demand (lazy) decoding.
  • New encoding/decoding configuration strategies have been added.

0.5.2

4 years ago
  • A full-fledge CSVEncoder has finally been implemented. Full support for Codable has been achieved. You can now use keyed, unkeyed and single value containers when neeeded.
  • CSVEncoder and CSVDecoder support for different buffering strategies. This translates in less memory usage for sequential or assembled runs.
  • CSVReader/CSVWriter API have been renamed to match CSVEncoder/CSVDecoder API.

0.5.1

4 years ago
  • Custom escaping scalars are supported thanks to @josh (#13). This includes the ability to disable escaping functionality on parsing or serializing CSVs.
  • Linux is officially supported. All tests now also run on Linux (Ubuntu 18.04) through Github actions.
  • Trim strategy now throws an error at initialization when it contains delimiter characters or escaping scalars.
  • The repo now provides not only a high-level roadmap, but also a detailed plan on which features are being worked next.

0.5.0

4 years ago
  • Expand input/output support to Data, String, and files (through URLs).
  • Reimplemented CSVReader and CSVWriter for greater performance.
  • Introduction of CSVError adopting SE-112 protocols for easier debugging.
  • Make Decoder fully immutable.
  • Expand tests on CSVReader, CSVWriter, and CSVDecoder.
  • OS requirements reduced to macOS 10.10, iOS 8, tvOS 9, watchOS 2.
  • First trials on Linux.
  • Fixed bug on trim character strategy.