FastCsvParser 1.1.0

.NET Standard 1.6 .NET Framework 2.0
There is a newer version of this package available.
See the version list below for details.
dotnet add package FastCsvParser --version 1.1.0
NuGet\Install-Package FastCsvParser -Version 1.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FastCsvParser" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FastCsvParser --version 1.1.0
#r "nuget: FastCsvParser, 1.1.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install FastCsvParser as a Cake Addin
#addin nuget:?package=FastCsvParser&version=1.1.0

// Install FastCsvParser as a Cake Tool
#tool nuget:?package=FastCsvParser&version=1.1.0


Fast read data with CSV format according to RFC4180 with small extensions. Best solution for parse very large data files

Key Features

  • Speed
  • Support standart RFC4180
  • Support async read operations for a network or some other slow to read functionality
  • No dependencies and a simple code base
  • Simple to use

Usage example

using System;
using System.IO;
using System.Linq;
using System.Text;

namespace CsvTest
    class Program
        static void Main(string[] args)
// Get file name our CSV file
            var input = args[0];

            using (var stream = File.OpenRead(input))
            using (var parser = new CsvParser.CsvReader(stream, Encoding.UTF8, 
// Include quotes (if exists) in result
// default WithQuotes = false, i.e. column value "'test'" translated to 'test'
                new CsvParser.CsvReader.Config() { WithQuotes = true }))
// Read CSV header
                if (!parser.MoveNext())
                    throw new InvalidDataException();
                var header = parser.Current.ToArray();

                while (parser.MoveNext())
// Read CSV row data
                    var row = parser.Current.ToArray();
// or column data
                    var col0 = parser.Current[0];

Performance test

Define data

File size 199475243 bytes, and 3337349 rows

var buffer = new MemoryStream();
using (var stream = File.OpenRead(input))

Simple read text data in file with encoding

using (var reader = new StreamReader(buffer, Encoding.UTF8))
    string line;
    while ((line = reader.ReadLine()) != null) ;

Read and parse data from CsvReader (without read columns)

using (var parser = new CsvParser.CsvReader(buffer, Encoding.UTF8))
    while (parser.MoveNext()) ;

Read and parse data from CsvReader with read first column data

using (var parser = new CsvParser.CsvReader(buffer, Encoding.UTF8))
    while (parser.MoveNext())
        var data = parser.Current[0];

Read and parse data from CsvReader with read all column data (10 columns)

using (var parser = new CsvParser.CsvReader(buffer, Encoding.UTF8))
    while (parser.MoveNext())
        var data = parser.Current.ToArray();

Results of execution in seconds below in table:

simple read CsvReader parse CsvReader parse and read one column CsvReader parse and read 10 columns
--0.4206415 --------1.1696580 -------------------------------1.2340430 --------------------------------3.0415450

Other very popular library execute in 4.5114237 sec on the same data, but not compiled on .net standard < 2.0

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard1.6 netstandard2.0 netstandard2.1
.NET Framework net20 net35 net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 net481
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen30 tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 2.0

    • No dependencies.
  • .NETFramework 3.5

    • No dependencies.
  • .NETFramework 4.5

    • No dependencies.
  • .NETStandard 1.6

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FastCsvParser:

Package Downloads

This library includes typeprovider for accessing SaintCoinach's raw datadump.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.1 11,170 3/30/2018
1.1.0 1,493 3/30/2018
1.0.0 847 3/29/2018