Uploaded by
Published on

This package provides the feature to parse string into CSV and print CSV into string. Parsing and printing in this package are based on RFC4180 that means:

  • field may or may not be enclosed by double-quotes but if the field contains line breaks, double quotes or commas, it's always enclosed by double quotes like "hello, world"
  • double quote inside field is escaped by preceding double-quote like "b""bb"

But for the sake of "simple but usefull as much as possible" policy, it's not fully compliant with RFC4180 like:

  • line breaks can be CR, LF or CRLF on parsing
  • header is not handled by this library itself. CSV type is just alias for Array (Array String) and it may or may not contain header
  • the number of fields on each record can differ. It's not checked at all on parsing and printing.
  • the last record in the file may or may not have an ending line break. This means parsing "aaa,bbb,ccc CRLF" becomes [["aaa", "bbb", "ccc"]] instead of [["aaa", "bbb", "ccc"], [""]]
  • if you try to parse "", it returns [] instead of [[""]]

TSV(Tab-Separated Values) is also supported and the spec is basically the same as the CSV one described above.