Vincentlaucsb Csv Parser Versions Save

A modern C++ library for reading, writing, and analyzing CSV (and similar) files.

2.2.0

1 month ago

2.1.3

2 years ago
  • Fix various compatibility issues with g++ and clang
  • Added hex value parsing
  • Fixed a rare out-of-bounds condition

2.1.2

2 years ago
  • Fixed compilation issues with C++11 and 14.
    • CSV Parser should now be should C++11 compatible once again with g++ 7.5 or up
  • Allowed users to customize decimal place precision when writing CSVs
  • Fixed floating point output
    • Arbitrarily large integers stored in doubles can now be output w/o limits
  • Fixed newlines not being escaped by CSVWriter

2.1.1

3 years ago
  • Fixed CSVStats only processing first 5000 rows thanks to @TobyEalden
  • Fixed parsing """fields like this""" thanks to @rpadrela
  • Fixed CSVReader move semantics thanks to @artpaul

2.1.0.1

3 years ago

Fixed #142 where decimal numbers were being printed properly by CSVWriter, and incorporated #137 and #134

2.1.0

3 years ago

New Features

  • CSVReader can now parse from memory mapped files, std::stringstream, and std::ifstream
  • DelimWriter now supports writing rows encoded as std::tuple
  • DelimWriter automatically converts numbers and other data types stored in vectors, arrays, and tuples

Improvements

  • CSVReader is now a no-copy parser when memory-mapped IO is used
    • CSVRow and CSVField now refer to the original memory map
  • Significant performance improvements for some files

Bug Fixes

  • Fixed potential thread safety issues with internals::CSVFieldList

API Changes

  • CSVReader::feed() and CSVReader::end_feed() have been removed. In-memory parsing should be performed via the interface for std::stringsteam.

2.0.1

3 years ago
  • Made parsing CSV files without header rows more convenient
  • Fixed a compilation error with std::back_inserter on some systems

2.0.0

3 years ago
  • Parser now uses memory-mapped IO for reading from disk thanks to mio
    • CSV files are read in smaller chunks to reduce memory footprint (but parsing is significantly faster)
  • CSVReader::read_row() (and CSVReader::iterator) no longer blocks CSVReader::read_csv(), i.e. we can now simultaneously work on CSV data while reading more rows
  • Parser internals completely rewritten to use more efficient and easier to maintain/debug data structures
  • Fixed bug where single column files could not be parsed
  • Fixed errors with parsing empty files
  • CSVWriter::write_row() now works with std::array

2.0.0-beta

3 years ago
  • Parser now uses memory-mapped IO for reading from disk
    • On Windows, parser may map entire file into memory or mmap chunks of file iteratively based on available RAM (will extend to all OSes)
  • Parser internals completely rewritten to use more efficient and easier to maintain/debug data structures
    • New algorithm involves minimal copying
  • Fixed bug where single column files could not be parsed
  • Fixed errors with parsing empty files

1.3.3

3 years ago
  • Fixed issue with incorrect usage of string_view that led to memory errors when parsing large files such as the 1.4GB Craigslist vehicles dataset #90
  • Added ability to have no quote character #83
  • Changed VariableColumnPolicy::IGNORE to IGNORE_ROW to avoid clashing with IGNORE macro as defined by WinBase.h #96