Bodu.Text.Delimited
0.6.0
See the version list below for details.
dotnet add package Bodu.Text.Delimited --version 0.6.0
NuGet\Install-Package Bodu.Text.Delimited -Version 0.6.0
<PackageReference Include="Bodu.Text.Delimited" Version="0.6.0" />
<PackageVersion Include="Bodu.Text.Delimited" Version="0.6.0" />
<PackageReference Include="Bodu.Text.Delimited" />
paket add Bodu.Text.Delimited --version 0.6.0
#r "nuget: Bodu.Text.Delimited, 0.6.0"
#:package Bodu.Text.Delimited@0.6.0
#addin nuget:?package=Bodu.Text.Delimited&version=0.6.0
#tool nuget:?package=Bodu.Text.Delimited&version=0.6.0
Bodu.Text.Delimited
API stability — Preview. The public API surface is largely settled but is still being finalized ahead of the 1.0 release and may change; breaking changes can land in a minor version until then.
An RFC 4180 delimited-text (CSV / TSV) library for .NET 8, shaped after System.Text.Json: a typed record serializer over a low-level forward-only token reader and writer, with both a mutable and a read-only document object model, plus the dialect policies real-world files need (ragged rows, malformed records, duplicate headers).
Installation
dotnet add package Bodu.Text.Delimited
Targets net8.0. Also available through the Bodu.Text.Formats umbrella package.
API shape
The public surface matches the sibling Bodu.Text.Bencode / Bodu.Text.Toml libraries, so the patterns transfer directly:
| Type(s) | Namespace | Role |
|---|---|---|
DelimitedSerializer / DelimitedSerializerOptions / DelimitedSerializerDefaults |
Bodu.Text.Delimited |
Static serializer entry point (records ↔ rows), configuration, and presets. |
DelimitedFieldCountBehavior / DelimitedMalformedRecordBehavior / DelimitedDuplicateHeaderBehavior |
Bodu.Text.Delimited |
The dialect policies for input that breaks the RFC 4180 contract. |
DelimitedFormatException / DelimitedSerializationException |
Bodu.Text.Delimited |
Failures split by cause: malformed input vs. values that cannot be mapped. |
Utf8DelimitedReader (+ DelimitedReaderOptions) |
Bodu.Text.Delimited.Reader |
Forward-only ref struct token reader with header lookahead. |
Utf8DelimitedWriter (+ DelimitedWriterOptions) |
Bodu.Text.Delimited.Writer |
Forward-only ref struct token writer (auto-quoting, dialect retargeting). |
DelimitedDocument / DelimitedElement / DelimitedProperty |
Bodu.Text.Delimited.Document |
Read-only document object model (records as objects keyed by header, or positional arrays). |
DelimitedNode / DelimitedArray / DelimitedObject / DelimitedValue |
Bodu.Text.Delimited.Nodes |
Mutable document object model: parse, edit, write back. |
using Bodu.Text.Delimited;
using Bodu.Text.Serialization;
var options = new DelimitedSerializerOptions { PropertyNamingPolicy = NamingPolicy.SnakeCaseLower };
List<Trade> trades = DelimitedSerializer.Deserialize<Trade>(csvText, options);
string back = DelimitedSerializer.Serialize(trades, options);
// Stream typed records without materializing the file.
await foreach (Trade trade in DelimitedSerializer.DeserializeAsyncEnumerableAsync<Trade>(stream, options))
Process(trade);
Values are carried as text on the wire; scalars convert with InvariantCulture. The serializer honours the shared Bodu.Text.Serialization attribute family, naming policies, and serialization callbacks. The Regression test tier carries a csv-spectrum-derived RFC 4180 conformance corpus.
| 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 was computed. 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 was computed. 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. |
-
net8.0
- Bodu.Core (>= 0.6.0)
- Bodu.Text.Serialization (>= 0.6.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Bodu.Text.Delimited:
| Package | Downloads |
|---|---|
|
Bodu.Text.Formats
Umbrella package for the Bodu line-oriented text formats on .NET 8 — delimited text (RFC 4180 CSV/TSV), DotEnv, and INI. References Bodu.Text.Delimited, Bodu.Text.DotEnv, and Bodu.Text.Ini, each a System.Text.Json-shaped library with a ref-struct Utf8 reader/writer pair, a serializer, a mutable node DOM, and a read-only document DOM. |
|
|
Bodu.Financial.ExchangeRates.Imf
IMF (International Monetary Fund) exchange-rate provider for Bodu.Financial. Downloads and parses the IMF Representative Exchange Rates monthly tab-separated report and serves the results as Bodu.Financial.ExchangeRates.ExchangeRate values through IDatedRateProvider and IRateProvider, with an async range API. Rates are USD-anchored daily representative rates (all reported currencies against the US dollar) with per-month caching; direction is auto-normalized. Includes the dependency-injection registration extensions (AddImfExchangeRates) for IServiceCollection and IFinancialServiceBuilder. |
|
|
Bodu.Financial.ExchangeRates.Boe
Bank of England (BoE) daily spot exchange-rate provider for Bodu.Financial. Queries the BoE's Interactive Statistical Database (IADB) CSV endpoint and serves the results as Bodu.Financial.ExchangeRates.ExchangeRate values through IDatedRateProvider and IRateProvider, with an async range API and in-memory plus on-disk caching. Includes dependency-injection extensions that register the provider on a configured, resilient HttpClient and bind its options. |
GitHub repositories
This package is not used by any popular GitHub repositories.