CSV v1.4.1

Modules summary

RFC 4180 compliant CSV parsing and encoding for Elixir. Allows to specify other separators, so it could also be named: TSV, but it isn’t

The Decoder CSV module sends lines of delimited values from a stream to the parser and converts rows coming from the CSV parser module to a consumable stream. In setup, it parallelises lexing and parsing, as well as different lexer/parser pairs as pipes. The number of pipes can be controlled via options

The module defaults of CSV

The Encoder CSV module takes a table stream and transforms it into RFC 4180 compliant stream of lines for writing to a CSV File or other IO

RFC 4180 compatible CSV lexer. Lexes tokens and sends them to the parser process

The CSV LineAggregator module - aggregates lines in a stream that are part of a common escape sequence

The CSV Parser module - parses tokens coming from the lexer and parses them into a row of fields

Exceptions summary

Raised at runtime when the CSV has rows of variable length

Raised at runtime when the CSV encoding is invalid

Raised at runtime when the CSV stream ends with unfinished escape sequences

Raised at runtime when the CSV syntax is invalid

Protocols summary

Implement encoding for your data types