cassava-0.5.2.0: A CSV parsing and encoding library

cassava-0.5.2.0: A CSV parsing and encoding library

cassava is a library for parsing and encoding RFC 4180 compliant comma-separated values (CSV) data, which is a textual line-oriented format commonly used for exchanging tabular data.

cassava's API includes support for

  • Index-based record-conversion
  • Name-based record-conversion
  • Typeclass directed conversion of fields and records
  • Built-in field-conversion instances for standard types
  • Customizable record-conversion instance derivation via GHC generics
  • Low-level bytestring builders (see Data.Csv.Builder)
  • Incremental decoding and encoding API (see Data.Csv.Incremental)
  • Streaming API for constant-space decoding (see Data.Csv.Streaming)

Moreover, this library is designed to be easy to use; for instance, here's a very simple example of encoding CSV data:

>>> Data.Csv.encode [("John",27),("Jane",28)]
"John,27\r\nJane,28\r\n"

Please refer to the documentation in Data.Csv and the included README for more usage examples.

Modules