LinearTsvParser 1.0.1
See the version list below for details.
dotnet add package LinearTsvParser --version 1.0.1
NuGet\Install-Package LinearTsvParser -Version 1.0.1
<PackageReference Include="LinearTsvParser" Version="1.0.1" />
paket add LinearTsvParser --version 1.0.1
#r "nuget: LinearTsvParser, 1.0.1"
// Install LinearTsvParser as a Cake Addin #addin nuget:?package=LinearTsvParser&version=1.0.1 // Install LinearTsvParser as a Cake Tool #tool nuget:?package=LinearTsvParser&version=1.0.1
Linear TSV Parser
NuGet package
Available at: https://www.nuget.org/packages/LinearTsvParser
To include it in a .NET Core
project:
dotnet add package LinearTsvParser
Examples
Reading a .tsv.gz
file:
using System.IO;
using System.IO.Compression;
using System.Collections.Generic;
using LinearTsvParser;
public class Example {
public void ReadTsv() {
using (var input = File.OpenRead("/tmp/test.tsv.gz"))
using (var gzip = new GZipStream(input, CompressionMode.Decompress))
using (var tsvReader = new TsvReader(input)) {
while(!tsvReader.EndOfStream) {
List<string> fields = tsvReader.ReadLine();
}
}
}
}
Writing a tsv.gz
file:
using System.IO;
using System.IO.Compression;
using System.Collections.Generic;
using LinearTsvParser;
public class Example {
public void WriteTsv() {
using (var outfile = File.Create("/tmp/test.tsv.gz"))
using (var gzip = new GZipStream(outfile, CompressionMode.Compress))
using (var tsvWriter = new TsvWriter(gzip)) {
foreach(List<string> fields in data) {
tsvWriter.WriteLine(fields);
}
}
}
}
The Linear TSV
format
- Fields are separated by TAB characters
- Text encoding is
UTF-8
- The reader can parse lines with any of these three endings:
\n
,\r\n
,\r
- The writer is restricted to output only the
\n
character as EOL - Special characters inside the fields are replaced:
- Newline ⇒
"\n"
- Carriage return ⇒
"\r"
- Tab ⇒
"\t"
"\"
(backslash) ⇒"\\"
- Newline ⇒
Benchmark
The benchmark test compares the performace of this library with "native" solutions, which use string replace operations. The solution with string replace (native) uses slightly more memory and is a bit slover than this library (lib). The benchmark test can be found here: BenchTest.cs
Method | Mean | Error | StdDev | Allocated |
---|---|---|---|---|
LibReadTest | 275.5 ms | 7.15 ms | 21.08 ms | 62.31 MB |
NativeReadTest | 309.8 ms | 10.08 ms | 29.26 ms | 66.66 MB |
LibWriteTest | 110.8 ms | 2.81 ms | 8.25 ms | 23.52 MB |
NativeWriteTest | 195.9 ms | 4.16 ms | 11.99 ms | 36.06 MB |
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 | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- BenchmarkDotNet (>= 0.12.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LinearTsvParser:
Package | Downloads |
---|---|
FatCatDB
Zero configuration, high performance database library for ETL workflows |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.7 | 5,169 | 1/18/2020 |
1.1.6 | 587 | 1/14/2020 |
1.1.5 | 479 | 1/14/2020 |
1.1.4 | 541 | 1/12/2020 |
1.1.3 | 542 | 1/12/2020 |
1.1.2 | 535 | 1/12/2020 |
1.1.1 | 542 | 1/12/2020 |
1.1.0 | 544 | 1/12/2020 |
1.0.7 | 486 | 1/12/2020 |
1.0.6 | 471 | 1/12/2020 |
1.0.5 | 526 | 1/12/2020 |
1.0.4 | 520 | 1/12/2020 |
1.0.3 | 525 | 1/12/2020 |
1.0.2 | 568 | 1/12/2020 |
1.0.1 | 625 | 1/11/2020 |
1.0.0 | 610 | 1/11/2020 |