• Stars
    star
    134
  • Rank 270,967 (Top 6 %)
  • Language
    C#
  • License
    MIT License
  • Created almost 6 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fast C# CSV parser

NReco.Csv

Ultra-fast C# CSV parser: implements stream reader and writer. NuGet Release

  • very fast: x2-x4 times faster than JoshClose's CSVHelper
  • memory efficient: uses only single circular buffer, no allocations in heap for CSV of any size
  • lightweight: bare csv parser with simple API
  • tolerant to not-fully correct CSV files, you can control max length of CSV file (useful for processing end-user CSV uploads)
  • can be used for stream processing of many-GB CSV files
  • supports all .NET versions: Framework 4.5+, .NET Core, NET6+

How to use

Parse CSV stream:

using (var streamRdr = new StreamReader(inputStream)) {
  var csvReader = new CsvReader(streamRdr, ",");
  while (csvReader.Read()) {
    for (int i=0; i<csvReader.FieldsCount; i++) {
      string val = csvReader[i];
    }
  }
}

Generate CSV to stream:


using (var streamWr = new StreamWrite(outputStream)) {
  var csvWriter = new CsvWriter(streamWr);
  // write line
  csvWriter.WriteField("Value with double quote\"");
  csvWriter.WriteField("And with\nnew line");
  csvWriter.WriteField("Normal");
  csvWriter.NextRecord();
}

Who is using this?

NReco.Csv is in production use at SeekTable.com and PivotData microservice.

License

Copyright 2017-2023 Vitaliy Fedorchenko and contributors

Distributed under the MIT license