FastCsvParser 1.1.1
.NET Standard 1.6
This package targets .NET Standard 1.6. The package is compatible with this framework or higher.
.NET Framework 2.0
This package targets .NET Framework 2.0. The package is compatible with this framework or higher.
dotnet add package FastCsvParser --version 1.1.1
NuGet\Install-Package FastCsvParser -Version 1.1.1
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.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FastCsvParser --version 1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FastCsvParser, 1.1.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. 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.1 // Install FastCsvParser as a Cake Tool #tool nuget:?package=FastCsvParser&version=1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CsvParser
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))
stream.CopyTo(buffer);
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 Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.6 is compatible. netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net20 is compatible. net35 is compatible. net40 was computed. net403 was computed. net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
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.Library (>= 1.6.1)
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FastCsvParser:
Package | Downloads |
---|---|
KPX.LibFFXIV.GameData
This library includes typeprovider for accessing SaintCoinach's raw datadump. |
GitHub repositories
This package is not used by any popular GitHub repositories.