Skip to content

Releases: dehesa/CodableCSV

Xcode 13 support and `standard` row delimiter

27 Aug 22:22
Compare
Choose a tag to compare
  • 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.

Stricter parsing

14 Mar 19:08
Compare
Choose a tag to compare
  • 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.

Second batch of performance enhancements

22 Nov 15:02
Compare
Choose a tag to compare
  • 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.

Optimizations & decodeIfPresent

31 May 07:02
Compare
Choose a tag to compare
  • 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.

Lazy Row Encoding

11 May 14:40
Compare
Choose a tag to compare
  • 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.

Top Level Codecs & InputStream Support

28 Apr 16:11
Compare
Choose a tag to compare
  • 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.

Lazy Row Decoding

10 Apr 21:47
Compare
Choose a tag to compare
  • CSVDecoder now supports on demand (lazy) decoding.
  • New encoding/decoding configuration strategies have been added.

CSVEncoder, Buffer Strategies & API Refining

31 Mar 14:06
Compare
Choose a tag to compare
  • 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.

Linux Support & Custom Escaping Scalars

26 Mar 09:24
Compare
Choose a tag to compare
  • 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.

Greater Performance & Easier Debugging

23 Mar 18:22
Compare
Choose a tag to compare
  • 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.