Skip to content

Commit

Permalink
Release 1.0 preparations
Browse files Browse the repository at this point in the history
  • Loading branch information
VitaliyMF committed Nov 28, 2018
1 parent 1aa98cb commit bdb8015
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 2 deletions.
24 changes: 23 additions & 1 deletion README.md
Expand Up @@ -3,14 +3,36 @@ Ultra-fast C# CSV parser: implements stream reader and writer.
[![NuGet Release](https://img.shields.io/nuget/v/NReco.Csv.svg)](https://www.nuget.org/packages/NReco.Csv/)

* 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
* 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 .NET Framework 4.5+ and .NET Core

## 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](https://www.seektable.com/) and [PivotData microservice](https://www.nrecosite.com/pivotdata_service.aspx).
Expand Down
22 changes: 21 additions & 1 deletion src/NReco.Csv/NReco.Csv.csproj
Expand Up @@ -12,7 +12,27 @@
<AssemblyName>NReco.Csv</AssemblyName>
<PackageId>NReco.Csv</PackageId>
<PackageTags>csv;parser;reader;csvhelper;netstandard;netcore</PackageTags>
<PackageReleaseNotes>
<PackageReleaseNotes>How to use:

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

// generate CSV
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();
}
</PackageReleaseNotes>
<PackageIconUrl>https://www.nrecosite.com/img/nreco-logo-200.png</PackageIconUrl>
<PackageProjectUrl>https://github.com/nreco/csv</PackageProjectUrl>
Expand Down

0 comments on commit bdb8015

Please sign in to comment.