PocketCsvReader 2.69.0
See the version list below for details.
dotnet add package PocketCsvReader --version 2.69.0
NuGet\Install-Package PocketCsvReader -Version 2.69.0
<PackageReference Include="PocketCsvReader" Version="2.69.0" />
<PackageVersion Include="PocketCsvReader" Version="2.69.0" />
<PackageReference Include="PocketCsvReader" />
paket add PocketCsvReader --version 2.69.0
#r "nuget: PocketCsvReader, 2.69.0"
#:package PocketCsvReader@2.69.0
#addin nuget:?package=PocketCsvReader&version=2.69.0
#tool nuget:?package=PocketCsvReader&version=2.69.0
PocketCsvReader
PocketCsvReader reads CSV and other structured text through forward-only data readers and streaming row outputs. Optional packages support JSON/JSONC, NDJSON, fixed-width, LTSV, logfmt, web logs, and security logs. The projects target .NET 8, 9, and 10.
Documentation · Installation · Contributing
Packages
| Package | Purpose |
|---|---|
PocketCsvReader |
CSV/TSV and shared APIs |
PocketCsvReader.Json |
JSON and JSONC with projection and stable field layout for object records |
PocketCsvReader.Ndjson |
NDJSON with projection and stable field layout for object records |
PocketCsvReader.Indexing |
Exact-key lookup with sparse indexes for sorted files and an opt-in scan fallback |
PocketCsvReader.FixedWidth |
Fixed character positions |
PocketCsvReader.KeyValue |
LTSV and logfmt with column projection, aliases, and stable field layout |
PocketCsvReader.WebLogs |
Common, Combined, W3C |
PocketCsvReader.SecurityLogs |
CEF and LEEF |
PocketCsvReader.Arrow |
Apache Arrow output |
PocketCsvReader.Arrow.ColumnarJson |
Apache Arrow Integration JSON, ClickHouse JSONColumns and JSONColumnsWithMetadata |
PocketCsvReader.Arrow.NetCdf |
Textual NetCDF CDL |
PocketCsvReader.Chrononuensis |
Temporal period parsers |
Columnar JSON
Install PocketCsvReader.Arrow.ColumnarJson and import PocketCsvReader.Arrow and
PocketCsvReader.Arrow.ColumnarJson. Use new ArrowIntegrationJsonReader() for
Arrow fixtures, new ClickHouseJsonColumnsReader(schema) for JSONColumns, or
ClickHouseJsonColumnsReader.WithMetadata() for JSONColumnsWithMetadata.
var reader = ClickHouseJsonColumnsReader.WithMetadata();
await foreach (var batch in reader.ToArrowBatchesAsync("export.json"))
{
using (batch)
Console.WriteLine(batch.Length);
}
Use ToArrowStreamAsync to inspect the Arrow schema before reading batches.
Dispose the returned stream and each batch. Supplied .NET streams stay open by
default. ClickHouse decodes each value into Arrow buffers as it reads and produces
one batch per document. JSONColumnsWithMetadata requires meta before data.
Integration JSON buffers one fixture batch at a time and requires schema
before batches.
Integration JSON supports primitive numeric types, booleans, UTF-8, binary and
fixed-size binary, dates, times, timestamps, durations, Decimal128, Decimal256,
and null. ClickHouse metadata maps booleans, 8- through 64-bit integers, floats,
strings, fixed strings, dates, decimals, and single-level arrays of supported
types. Nullable controls field nullability. LowCardinality uses its underlying
value type. Unsupported types are reported with the field name.
Use ToLazyArrowStream or ToLazyArrowStreamAsync to decode only the columns
you access. Both readers expose the schema before reading records.
using var stream = await reader.ToLazyArrowStreamAsync("export.json");
while (await stream.ReadNextRecordAsync() is { } record)
{
using (record)
Console.WriteLine(record.Column("id").Length);
}
For a file path, lazy records share the original read-only handle and retain
a packed index of value byte boundaries. The index covers every column and
lets the first Column call read and decode the requested values directly.
Keep the source bytes stable while any record is alive. For a supplied stream,
each record stages its raw columns in a temporary file. Records can outlive the
input reader in either case. The first Column call can perform synchronous I/O
and report conversion errors. Later calls return the cached array. Dispose each
record to release its arrays and backing storage.
First example
dotnet add package PocketCsvReader
using System.Text;
using PocketCsvReader.Configuration;
var csv = new CsvReaderBuilder()
.WithDialect(d => d.WithHeader().WithLineTerminator("\n"))
.Build();
using var stream = new MemoryStream(Encoding.UTF8.GetBytes("Id,Name\n1,Ada\n"));
using var reader = csv.ToDataReader(stream);
while (reader.Read())
Console.WriteLine($"{reader.GetInt32(0)}: {reader.GetString(1)}");
// 1: Ada
See output models, reader filtering, object mapping, async reading, inference, and performance guidance for complete behavior and limitations.
Shared ownership, null, conversion, and performance contracts have their authoritative home in the documentation rather than duplicated README sections.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (13)
Showing the top 5 NuGet packages that depend on PocketCsvReader:
| Package | Downloads |
|---|---|
|
NBi.Framework.Tools
This package contains the NBi framework and references each dll to your project. This package is not intended to be directly used by end-users willing to create test-suites. Check the package NBi.VisualStudio, if you want to facilitate the usage of NBi from Visual Studio. NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Quality. It supports the Microsoft Data platform (SQL Server Database engine, SSIS, SSAS, SSRS) but also MySQL, PostgreSQL and other NoSQL solutions. |
|
|
Didot.Core
Package Description |
|
|
Packata.ResourceReaders
Packata is a library for consuming Data Package v2 files. The `Packata.ResourceReaders` package specializes in providing read access to resource files using common patterns, such as `IDataReader`, ensuring seamless data retrieval and processing. |
|
|
Expressif.Serialization
Reusable JSON and CSV conversion for Expressif values. |
|
|
PocketCsvReader.FixedWidth
PocketCsvReader.FixedWidth extends PocketCsvReader with single-pass, lazy field parsing for fixed-width text files. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on PocketCsvReader:
| Repository | Stars |
|---|---|
|
Seddryck/NBi
NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Access. The main goal of this framework is to let users create tests with a declarative approach based on an Xml syntax. By the means of NBi, you don't need to develop C# or Java code to specify your tests! Either, you don't need Visual Studio or Eclipse to compile your test suite. Just create an Xml file and let the framework interpret it and play your tests. The framework is designed as an add-on of NUnit but with the possibility to port it easily to other testing frameworks.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.71.0 | 0 | 11/10/2026 |
| 2.70.0 | 0 | 11/10/2026 |
| 2.69.0 | 0 | 11/10/2026 |
| 2.68.0 | 0 | 11/10/2026 |
| 2.67.0 | 0 | 11/9/2026 |
| 2.66.0 | 14 | 11/9/2026 |
| 2.65.0 | 58 | 11/9/2026 |
| 2.64.0 | 63 | 11/9/2026 |
| 2.63.0 | 142 | 11/6/2026 |
| 2.62.0 | 876 | 11/2/2026 |
| 2.61.1 | 223 | 11/2/2026 |
| 2.61.0 | 234 | 11/2/2026 |
| 2.60.1 | 335 | 11/1/2026 |
| 2.60.0 | 227 | 11/1/2026 |
| 2.59.1 | 211 | 11/1/2026 |
| 2.59.0 | 213 | 10/31/2026 |
| 2.58.1 | 218 | 10/31/2026 |
| 2.58.0 | 227 | 10/31/2026 |
| 2.57.1 | 221 | 10/31/2026 |
| 2.57.0 | 218 | 10/31/2026 |